组合框更改麻烦

问题描述:

我按照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?

MSDN特别警告这一点。 SelectedText是错误的属性,您应该只使用它来检索用户在组合框的文本框部分中选择的文本。在更改索引后,您确实会选择所有文本,但直到此事件运行之后才会发生。改为使用SelectedItem.ToString()。