2

私はコンボボックスを持っていて、その中に物事のリストがあります....リストの中の物事の量は設定されていません。これはフォルダーからデータを収集しており、コンボボックスに無限の(少し誇張された)アイテムを含めることができます...ユーザーがどのオプションを選択したかを知るにはどうすればよいですか?

以下のコードを試しましたが、機能しません。私はC#を初めて使用し、何が間違っているのかわかりません。

        comboBox1.SelectedIndex = 0;
        comboBox1.Refresh();

        if(comboBox1.SelectedIndex = 0)
        {
           //setting the path code goes here
        }
4

4 に答える 4

5

C#の値を比較するには、「=」の代わりに「==」を使用する必要があります

if(comboBox1.SelectedIndex == 0) 
{ 
   //setting the path code goes here 
} 
于 2012-05-09T14:00:00.453 に答える
3

プロパティを使用ComboBox.SelectedItem します。

于 2012-05-09T14:00:10.123 に答える
2

編集:どうやら私は良い情報の代わりに迅速な答えを求めていたようです、私はこれを読みやすくするためにもっと情報を追加しています

選択が変更されるたびに起動するコンボボックスのイベントがあります。デザイナでコンボボックスを選択し、次に[イベント]タブを選択して、SelectionChangedをダブルクリックします。

選択したものにアクセスする必要がある場合は、ボタンをクリックすると、Rahulが述べたように使用できます。

Button1_Click(...)
{ 
    MessageBox.Show(comboBox1.SelectedItem.ToString()); 
}

または、コンボボックスに現在表示されているテキストにアクセスしたいだけの場合

Button1_Click(...)
{ 
    MessageBox.Show(comboBox1.SelectedText); 
}
于 2012-05-09T14:06:26.913 に答える
1

=演算子を使用すると、右側が左側に設定され、結果が右側になります(これにより左側も設定されます)。

==演算子を使用すると、右側が左側と等しいかどうかがチェックされ、結果はブール値(true / false)になります。

int i = 10;
int j = 40;

Console.WriteLine(i == j); // false
Console.WriteLine(i); // 10
Console.WriteLine(j); // 40
Console.WriteLine(i = j); // 40
Console.WriteLine(i); // 40
Console.WriteLine(i == j); // true

したがって、最初は、SelectedIndexを0に設定していますが、これは、ユーザーがどのインデックスを選択したかを知りたいため、おそらく実行したくないでしょう。

したがって、SelectedIndexを変更する場合、ユーザーが何を選択したかを知ることはできません。

必要な条件は次のとおりです。

if (comboBox1.SelectedIndex == 0)
{
    // Selected item is item 0
}

あなたがこれをしているとき:

if (comboBox1.SelectedIndex = 0)
{
}

実際に発生するのは、SelectedIndexが0に設定されている場合、コンパイラーは0をブール値にキャストしようとします(if条件内にあるため)。これにより、コンパイルエラーが発生します。

于 2012-05-09T13:59:34.047 に答える