【问题标题】:Combobox.SelectedValue wont select the actual valueCombobox.SelectedValue 不会选择实际值
【发布时间】:2018-02-02 09:54:32
【问题描述】:

我有一个问题正在努力解决。

我以这种方式填充组合框:

RDTA_cb_provincias.DataSource = provincias;
RDTA_cb_provincias.DisplayMember = IdiomaBD.ObjCI.ToString().Equals("eu-ES")
    ? "TTEXNOMBRPROV_EU"
    : "TTEXNOMBRPROV_ES";
RDTA_cb_provincias.ValueMember = "TCODIDTERRITORIO";

有些东西取决于用户的语言,但我想这在这里并不重要。

好吧,当我想根据值成员进行选择时,我会这样做:

RDTA_cb_provincias.SelectedValue = provincia2.TCODIDTERRITORIO;

但由于某种原因,它不会显示我想要显示的实际项目。在调试时我可以看到 RDTA_cb_provincias.SelectedValue 匹配 provincia2.TCODIDTERRITORIO。

例如,我已将 SelectedValue 设置为 51,但是当我在更改值后看到 ComboBox 内的 SelectedItem 时,它会显示一个对象,其 TCODIDTERRITORIO 为 47。

会是什么?或者我怎样才能绕过这个问题(也许迭代整个 ComboBox 项目列表,直到我找到我想要选择的那个?)

提前致谢!

【问题讨论】:

    标签: c# winforms combobox


    【解决方案1】:

    您应该改用SelectedItem

    RDTA_cb_provincias.SelectedItem = provincia2;
    

    或者你可以使用SelectedIndex如下:

    RDTA_cb_provincias.SelectedIndex = RDTA_cb_provincias.FindStringExact(provincia2.TCODIDTERRITORIO)
    

    【讨论】:

    • SelectedIndex 查找是个坏主意;如果有重复的字符串,它将不起作用。而且,SelectedItem 不应该是主要对象provincia2,而不是它的属性吗?
    • @Nyerguds 在这种情况下不会发生省代码 Id,但您是对的,谢谢您的反馈
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 2018-10-19
    相关资源
    最近更新 更多