组合框更改麻烦
问题描述:
我按照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()。