1

VS2008 C# + Windows フォームを使用しています。なぜコンボボックスが本来の動作をしないのか理解できません。デザイン モードで、コンボ ボックスをフォームに追加し、項目を編集して "A" と "B" を追加しました。ダブルクリックすると、SelectedIndexChanged イベントが表示されます。これを編集して、選択したテキストを MessageBox で表示します。

private void comboBoxImageSet_SelectedIndexChanged(object sender, EventArgs e)
{
    MessageBox.Show(comboBoxImageSet.SelectedText);
}

実行して、コンボボックスで「A」または「B」を選択すると、メッセージボックスが表示されますが、何も書き込まれません。なんで?

ありがとう。

4

4 に答える 4

3

ComboBoxここでは、コントロールの選択プロパティの違いを示します。

  1. SelectedIndex ;
  2. SelectedItem ;
  3. 選択されたテキスト;
  4. SelectedValue

SelectedIndexプロパティ:

現在選択されている項目を指定するインデックスを取得または設定します。

単に選択リストで選択された項目のインデックスを示します。(あなたの親切な情報のみを提供する情報. =))


SelectedItemプロパティ:

で現在選択されている項目を取得または設定しますComboBox

SelectedItemListControlは、 のに従って現在選択されている要素を表しComboBoxます。これが、質問に答えるために使用したい理由です。


SelectedTextプロパティ:

の編集可能な部分で選択されているテキストを取得または設定しますComboBox

つまり、 のTextBox一部、編集のComboBoxために入力したときに選択されるテキスト、またはその他の種類のテキスト選択を編集する場合です。ListControlこれには、 の部分で行われた選択が含まれますComboBox。たとえば、ComboBox.DropDownStyleプロパティが に設定されている場合ComboBoxStyle.DropDownList、 の編集可能な部分でテキストを選択することはできませんComboBox。それにもかかわらず、リスト内の別の項目を選択することはできます。そのため、目的を果たすために使用するのに適切なプロパティではありません。


SelectedValueプロパティ:

プロパティで指定されたメンバー プロパティの値を取得または設定しValueMemberます。

プロパティと組み合わせて DataBinding を使用する場合にのみ使用されDisplayMemberます。たとえば、顧客の名前を表示し、データベース ID で顧客を選択する場合DisplayMember、 は顧客の名前とValueMemberID を表示する必要があります。このように、顧客を 1 人選択すると、 がSelectedValue変更さSelectedValueChangedれ、 から継承されたイベントが発生しListControlます。(あなたの親切な情報のみを提供する情報. =))


于 2010-05-28T19:04:16.243 に答える
2

SelectedText プロパティは、選択された項目ではなく、コンボ ボックスでマークされているテキストを返します。コンボボックスが編集可能な場合、テキストの一部をマークすることができ、SelectedText プロパティはマークされたテキストを返します。ここを見てください

関心があるのは、SelectedItemプロパティまたはSelectedValueプロパティです。

于 2010-05-28T18:18:15.730 に答える
1

ComboBox.SelectedText

コンボ ボックスで現在選択されているテキストを表す文字列。DropDownStyle がDropDownListに設定されている場合、戻り値は空の​​文字列 ("") です。

SelectedText の代わりに SelectedItem を使用する

于 2010-05-28T18:18:55.623 に答える
0

選択されたテキスト:

ComboBox の編集可能な部分で選択されているテキストを取得または設定します。

つまり、現在マークされているテキストを取得します。

を使用しますSelectedItem.ToString()

于 2010-05-28T18:15:21.730 に答える