取消

Winform-Combobox设置SelectValue无效

Winform控件Combobox设置SelectedValue、SelectedItem、SelectedIndex后,值仍然为null的问题。


问题

Winform控件Combobox设置SelectValue后,值仍然为null的问题;

代码片段如下:

1
2
3
4
5
6
7
cmb.DisplayMember = "NAME";//cmb是一个combobox组件,是在TabPage上的一个控件,TabPage没有加到TabControl上
cmb.ValueMember = "CODE";
cmb.DataSource = dics;//dics是一个包含NAME和CODE属性的列表
if (dics.Any(d => d.CODE == "9527"))
{
    cmb.SelectedValue = "9527";//执行这句后发现SelectedValue仍然为null
}

解决

在设置SelectedValue前必须把combobox加到页面中去,否则设置选中项是无效的,甚至直接设置SelectedIndex还会报错。

1
tab1.Controls.Add(tabPage2);

如果你发现设置combobox的选中项无效时可以查看是否combobox没有在窗体的控件树中。

原因

正在探索……


参考资料

本文会经常更新,请阅读原文: https://dashenxian.github.io/post/Winform-Combobox-SelectValue%E8%AE%BE%E7%BD%AE%E5%90%8E%E4%B8%BAnull ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 小神仙 (包含链接: https://dashenxian.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 (125880321@qq.com)

登录 GitHub 账号进行评论