Joh*_*ohn 4 .net vb.net combobox selectedindexchanged winforms
我正在使用Visual Studio 2005开发VB.NET.
我在一个表单上有一个ComboBox(myCombo),它在Load方法中填充.
我还处理了myCombo.SelectedIndexChanged来更改表单上的标签.
编辑:我添加事件处理程序的方式是双击设计器上的组合框.然后在代码视图中出现了骨架代码.
看起来正在发生的是表单加载时,每次将项添加到myCombo时,SelectedIndexChanged都会被触发.
这不是我想要的,但我认为只有当用户更改选择时才会调用另一个事件处理程序.
这是我的一些代码:
Private Sub myDlg_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' this is all I do with myCombo in this sub
list = GetListOfItemsToAdd()
myCombo.DataSource = list
myCombo.DisplayMember = "DisplayMember"
myCombo.ValueMember = "ValueMember"
End Sub
Run Code Online (Sandbox Code Playgroud)
有人能指出我正确的方向吗?
一如既往地谢谢.
更新: 我使用的解决方案是在事件生成器之后删除Handles子句,并在上面的"End Sub"之前添加它:
AddHandler myCombo.SelectedIndexChanged, AddressOf myCombo_SelectedIndexChanged
Run Code Online (Sandbox Code Playgroud)
感谢大家!
Joe*_*Joe 10
SelectionChangeCommitted是用户 更改ComboBox选择时调用的事件处理程序.
从SelectionChangeCommitted的MSDN文档:
仅当用户更改组合框选择时才会引发SelectionChangeCommitted.不要使用SelectedIndexChanged或SelectedValueChanged来捕获用户更改,因为当选择以编程方式更改时也会引发这些事件.
但请注意,有一个错误意味着在某些情况下不会触发SelectionChangeCommitted事件(具体来说:使用键盘下拉列表,滚动到一个新项目,然后选项卡到另一个控件.选择已更改,但是SelectionChangeCommitted事件未被触发).请参阅http://connect.microsoft.com/VisualStudio/feedback/details/115189/selectionchangecommitted-event-sometimes-not-raised-by-combobox
在实践中,我发现这不是用户认为的问题 - 因此我继续使用SelectionChangeCommitted而不是使用SelectedIndexChanged的其他变通方法.但YMMV当然.
您只能在加载数据后添加事件处理程序.(使用AddHandler关键字)
| 归档时间: |
|
| 查看次数: |
7586 次 |
| 最近记录: |