gpt4 book ai didi

.net - 不会在表单加载时触发的 SelectedIndexChanged 替代方案?

转载 作者:行者123 更新时间:2023-12-04 21:54:58 24 4
gpt4 key购买 nike

我正在使用 Visual Studio 2005 在 VB.NET 中进行开发。

我在 Load 方法中填充的表单上有一个 ComboBox (myCombo)。

我还处理了 myCombo.SelectedIndexChanged 以更改表单上的标签。

编辑:我添加事件处理程序的方式是双击设计器上的组合框。然后在代码 View 中出现了骨架代码。

看起来发生的事情是当表单加载时,每次将项目添加到 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

有人能指出我正确的方向吗?

一如既往的感谢。

更新:我使用的解决方案是删除事件生成器之后的 Handles 子句,并将其添加到上面的“End Sub”之前:
AddHandler myCombo.SelectedIndexChanged, AddressOf myCombo_SelectedIndexChanged

谢谢大家!

最佳答案

SelectionChangeCommitted 是当用户更改 ComboBox 选择时调用的事件处理程序。

来自 SelectionChangeCommitted 的 MSDN 文档:

SelectionChangeCommitted is raised only when the user changes the combo box selection. Do not use SelectedIndexChanged or SelectedValueChanged to capture user changes, because those events are also raised when the selection changes programmatically.



但是请注意,存在一个错误,这意味着在某些情况下不会触发 SelectionChangeCommitted 事件(特别是:使用键盘下拉列表,滚动到一个新项目,然后使用 Tab 键切换到不同的控件。选择已更改,但SelectionChangeCommitted 事件不会被触发)。见 http://connect.microsoft.com/VisualStudio/feedback/details/115189/selectionchangecommitted-event-sometimes-not-raised-by-combobox

在实践中,我发现用户并不认为这是一个问题 - 因此我继续使用 SelectionChangeCommitted 而不是使用 SelectedIndexChanged 的​​其他解决方法。但当然是YMMV。

关于.net - 不会在表单加载时触发的 SelectedIndexChanged 替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1956081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com