2012-12-11 161 views
1

我按照http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectionchangecommitted.aspx的指示,但我有一些麻煩。組合框更改麻煩

首先,此框爲空並禁用。然後,搜索完成後,它會用值填充此組合框。假設這些值是0=>"", 1=>"My first value", 2="My second value"。然後,我有這個框的處理程序和它引發我每次更改值時,看起來像這樣

Private Sub MyComboBox_SelectionChangeCommitted(ByVal sender As Object, ByVal e As EventArgs) Handles MyComboBox.SelectionChangeCommitted 

    MsgBox(MyComboBox.SelectedText) 

End Sub 

如果我現在選擇1號,我在消息框中獲取「」。如果我然後選擇數字2,我會得到「我的第一個數值」,依此類推。它落後了一步。它在值更改之前觸發。我怎麼能告訴它等待這個值,然後觸發msgbox?

回答

2

MSDN特別警告這一點。 SelectedText是錯誤的屬性,您應該只使用它來檢索用戶在組合框的文本框部分中選擇的文本。在更改索引後,您確實會選擇所有文本,但直到此事件運行之後纔會發生。改爲使用SelectedItem.ToString()。