ComboBox事件:SelectedIndexChanged与SelectedValueChanged的区别

22
在数据绑定的ComboBox中,如果其ValueMember和DisplayMember属性已经正确设置:
在选择下拉列表中的项时,SelectedIndexChanged事件和SelectedValueChanged事件有什么区别?它们会同时触发吗?
2个回答

34

好的,仅仅因为索引值改变,并不意味着您的数值必须改变。

这种情况可能并不是最现实的,因为从设计角度来看,这种实现方式会很糟糕。

假设您正在显示一个ComboBox,其中显示身体的各个部位。然而,您可能需要将此信息以整数值映射的格式导出或存储。因此,您的ComboBox可能显示"左臂"和"右臂",它们被映射到值5,该值定义了(5 = 上半身)在其映射中。然后,如果用户将"右臂"切换为"左臂",则没有数值更改;但SelectedIndex已经改变。

所以我想这是一个情况-by-情况的基础,但是这些事件肯定可以根据情况而有所不同。


1
区别在于,如果您编辑组合框而其不是索引值的一部分,则SelectedItemChange将为-1。但是,一旦您开始在组合框中输入,它就会触发值更改事件。
例如,您可以使用值更改来触发事件,以重新格式化域向上/向下控件中的文本输入。如果有人编辑域向上/向下控件并且其值变为-1,则可以通过按按钮并使用domainupdown.text属性来收集其列表中的新项目。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接