ComboBox改变了麻烦

时间:2012-12-11 13:17:04

标签: vb.net winforms combobox

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

1 个答案:

答案 0 :(得分:2)

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