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?

4

1 回答 1

2

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

于 2012-12-11T13:36:35.947 回答