当我的表单加载时,在填充并选择了ComboBox之前,会触发此事件(SelectedIndexChanged)。如何防止代码在表单完全加载之前将此事件从执行中保留?我尝试测试.SelectedIndex,但它返回0.
答案 0 :(得分:1)
在vb设计/编辑器中将combobox enabled property
添加到false
然后在将所有内容加载到组合框后添加combobox1.enabled=true
这会有所帮助!
答案 1 :(得分:1)
这种情况正在发生,因为当您在启动时向组合框添加项目时,它会自动选择列表中的第一个作为要显示的值(组合框默认行为)。第一项的默认选择会导致selectedindexchanged处理程序触发并运行例程。
你应该做的是使用addhandler和removehandler。
例如:
你的组合框索引更改例程被称为“indexchangedroutine”,你的组合框称为“mycombobox”。
启动时:
addhandler mycombobox.selectedindexchanged, addressof indexchangedroutine
addressof部分是此控件事件触发时要调用的例程的名称。
为防止例程在启动时触发,您应首先填充组合框项目,然后再调用addhandler来链接事件和逻辑。
如果需要进行更新(如更新计时器),您可以调用removehandler而不是addhandler,它将取消逻辑与控件事件之间的链接。您可以进行更新,完成后,可以再次调用addhandler将其链接起来备份以供使用。
希望这对你有所帮助。看起来似乎涉及更多的代码,但是这种方法避免了在selectedindexchanged例程中使用hacky修复程序,例如“在这里”标记。
答案 2 :(得分:0)
请问.Validate.children确实工作了