【发布时间】:2011-01-27 15:30:01
【问题描述】:
在数据绑定ComboBox 的上下文中,其ValueMember 和DisplayMember 属性已适当设置:
SelectedIndexChanged 和 SelecetedValueChanged 事件之间有区别吗?当从ComboBox 的下拉列表中选择一个项目时,它们是否同时触发?
【问题讨论】:
标签: vb.net winforms events data-binding combobox
在数据绑定ComboBox 的上下文中,其ValueMember 和DisplayMember 属性已适当设置:
SelectedIndexChanged 和 SelecetedValueChanged 事件之间有区别吗?当从ComboBox 的下拉列表中选择一个项目时,它们是否同时触发?
【问题讨论】:
标签: vb.net winforms events data-binding combobox
好吧,仅仅因为您的索引更改并不一定意味着您的值必须更改。
这也可能不是最现实的情况,因为从设计角度来看,这种实现会很糟糕。
假设您正在显示ComboBox,您正在显示身体部位。但是,您可能会以映射到整数值的格式导出或存储此信息。因此,您的ComboBox 可能会显示映射到值 5 的“左臂”和“右臂”,这在其映射中定义了 (5 = 上身)。然后,如果用户将“右臂”切换到“左臂”,则值没有变化;但是SelectedIndex 已更改。
所以我想这是一个个案,但这些事件肯定会根据具体情况发挥不同的作用。
【讨论】:
不同之处在于,如果您编辑组合框,则 SelectedItemChange 将为 -1,因为它不是索引值的一部分。但是,一旦您开始在组合框中输入内容,它就会触发值更改事件。
您可以使用值更改来触发将重新格式化 domainupdown 控件中的文本输入的事件。如果有人编辑 domainupdown 控件并且它的值变为 -1,您可以将新项目收集到其列表中(通过按下按钮并使用 domainupdown.text 属性。
【讨论】: