0

WinForms アプリケーションのコンボボックス コンポーネントにいくつかのフラッシュ ファイルがリストされています。ファイルが選択されている場合、webBrowser コンポーネントで再生する必要があります。コードは次のとおりです。

コンボボックスへのファイルの追加:

   private void Form1_Load(object sender, EventArgs e)
    {
        string[] filePaths = Directory.GetFiles(@"c:\folder\");

          foreach (string s in filePaths)
        {
            comboBox1.Items.Add(s);
        } 
    }

フラッシュ ファイルの再生:

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        this.webBrowser1.Navigate(comboBox1.SelectedText); //it doesnt work
    }

フラッシュファイルは正常に開くことができますが、コンボボックスから選択した値を渡すことができないようです。

アップデート

このイベントが機能していることを確認するために、次のように変更しました。

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
        this.textBox1.Text = "adsfadsf";
        this.textBox2.Text = comboBox1.SelectedText;
}

選択した項目を変更すると、文字列 adsfadsf が textBox1 に表示されますが、textBox2 は空のままです。

更新2

完全なコードは次のとおりです。

using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace App1
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        string[] filePaths = Directory.GetFiles(@"c:\folder\");

        foreach (string s in filePaths)
        {
            comboBox1.Items.Add(s);
        } 
    }

    private void label1_Click(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {

    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }


    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        this.textBox2.Text = "adsfadsf";
        this.textBox1.Text = comboBox1.SelectedText;
       // this.webBrowser1.Navigate(comboBox1.SelectedText);
    }

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {

    }

    private void textBox2_TextChanged(object sender, EventArgs e)
    {

    }

}

}

4

1 に答える 1

3

あなたの質問に対する簡単な答えは、comboBox1.SelectedText ではなく、comboBox1.Text を使用することです。

ここでのより大きな問題は、デバッガを適切に使用していれば、これをすぐに見つけることができたということです。これを行う方法がわからない場合は、簡単なチュートリアルをご覧ください。

これにはVS2008を使用していますが、すべてのバージョンでほぼ同じです。

まず、正しく機能していないコード行にブレークポイントを設定します。左マージンをクリックすると、ブレークポイントを示す赤い点が表示されます。

次に、コードを実行します。ドロップダウンを変更すると、ブレークポイントが発生し、Visual Studio に戻ります。「comboBox1.SelectedText」の「SelectedText」部分にマウスを合わせると、空の文字列が表示されていることがわかります。これが、アプリケーションが意図したとおりに機能していない理由です。

次に、「comboBox1」部分にカーソルを合わせると、変数に関する少量の情報が表示されます。左の「+」をクリックすると拡大します。プロパティと値を下にスクロールすると、探している値が "Text" プロパティにあることがわかります。

于 2012-07-13T11:54:17.320 に答える