2010-05-28 79 views
1

我使用VS2008 C#+ Windows窗體。我不明白爲什麼comboBox不會按照它應該的方式行事。 在設計模式下,我在窗體中添加了組合框,並編輯項目以添加「A」和「B」。雙擊將我帶入SelectedIndexChanged事件,我編輯該事件以顯示帶有MessageBox的選定文本。有問題的組合框Windows窗體

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

當我運行,並選擇下拉框中的「A」或「B」,出現在MessageBox,但沒有被寫入。 爲什麼?

謝謝。

+0

,嘗試((組合框)發送方).SelectedText 而不是去控制嘗試實例上運行的事件之後。 – DevelopingChris 2010-05-28 18:08:44

回答

0

SelectedText

獲取或設置在組合框的可編輯部分選擇 的文本。

也就是說,它獲取當前標記的文本。

你想使用SelectedItem.ToString()

2

SelectedText屬性返回在組合框中標記的文本,而不是所選項目。如果組合框是可編輯的,則可以標記文本的一部分,並且SelectedText屬性將返回標記的文本。 Look here

您感興趣的是SelectedItem屬性或SelectedValue屬性。

1

ComboBox.SelectedText

表示在組合框中當前 選定的文本字符串。如果 DropDownStyle設置爲DropDownList, 返回值是一個空字符串 (「」)。

使用的SelectedItem代替SelectedText

3

這裏一個ComboBox控件的選擇特性之間的差異。

  1. SelectedIndex;
  2. SelectedItem;
  3. SelectedText;
  4. SelectedValue

SelectedIndex屬性:

獲取或設置的索引,指定當前選擇的項目。

只需指出選擇列表中所選項目的索引。 (僅提供您的實物信息的信息。=))


SelectedItem屬性:

獲取或設置當前在ComboBox選擇的項目。

的SelectedItem表示當前選擇作爲每ComboBoxListControl的元素。 這就是爲什麼這是你想使用,以回答你的問題。


SelectedText屬性:

獲取或設置在一個ComboBox的可編輯部分選擇的文本。

也就是說,當你編輯TextBox部分ComboBox的,當你爲編輯輸入可能被選擇的文本,或任何其他類型文本選擇。這確實包括通過ComboBoxListControl部分進行的任何選擇。例如,如果您的ComboBox.DropDownStyle媒體資源設置爲ComboBoxStyle.DropDownList,那麼您將永遠無法在ComboBox的可編輯部分中選擇任何文本。儘管如此,您可以在列表中選擇另一個項目。 這就是爲什麼它不是用來爲您的目的服務的正確財產。


SelectedValue屬性:

獲取或設置由ValueMember屬性指定的成員屬性的值。

僅在使用DataBinding時,與DisplayMember屬性一起使用。例如,當您想要顯示客戶的名稱,並通過他的數據庫ID選擇他時,DisplayMember應顯示客戶名稱和ValueMember Id。這樣,當您選擇一個客戶時,SelectedValue會更改並引發從ListControl繼承的SelectedValueChanged事件。只是咧嘴一笑(前提是你的唯一的一種信息。=))