ComboBox事件:SelectedIndexChanged与SelectedValueChanged

时间:2011-01-27 15:30:02

标签: vb.net winforms events data-binding combobox

在数据绑定ComboBox的上下文中ValueMemberDisplayMember属性已正确设置:

SelectedIndexChangedSelecetedValueChanged事件之间是否存在差异?从ComboBox的下拉列表中选择项目时,它们是否同时被触发?

2 个答案:

答案 0 :(得分:26)

好吧,仅仅因为您的索引更改并不一定意味着您的值必须更改。

这也可能不是最现实的情况,因为在设计方面这种实施方式会很糟糕。

假设您正在显示正在显示身体部位的ComboBox。但是,您可能以映射到整数值的格式导出或存储此信息。因此,您的ComboBox可能会显示“左臂”和“右臂”,它们映射到值5,在其映射中定义(5 =上半身)。然后,如果用户将“右臂”切换到“左臂”,则没有值改变;但SelectedIndex已发生变化。

所以我想这是个案的基础,但这些事件肯定会根据具体情况而有所不同。

答案 1 :(得分:0)

不同之处在于,如果您编辑组合框,则SelectedItemChange将为-1,而不是索引值的一部分。但是,只要您开始输入组合框,它就会触发值更改事件。

您可以使用值更改来触发将在domainupdown控件中重新格式化文本输入的事件。如果有人编辑了domainupdown控件并且其值变为-1,则可以将新项目收集到其列表中(通过按下按钮并使用domainupdown.text属性。