首页 新闻 会员 周边 捐助

(winform)Combox绑定List ,无法选中项

0
悬赏园豆:10 [已解决问题] 解决于 2019-08-05 09:21

如图使用SelectedIndex,SelectedText,SelectedValue 都无法选中

幽默访客的主页 幽默访客 | 初学一级 | 园豆:87
提问于:2019-08-04 21:37

折中的办法:
int index = sexs[sexs.FindIndex(c => c.Sex.Contains(s.Sex))].ID;

    if (!string.IsNullOrEmpty(s.Sex))
    {
        //this.comboBox1.SelectedIndex = this.comboBox1.Items.IndexOf("女");

        this.comboBox1.SelectedValue = index;
    }

想搞明白为啥如图那样就不行,谢高抬贵手

幽默访客 5年前
< >
分享
最佳答案
0

你先看 this.comboBox1.Items.IndexOf("女"); 这个得到的结果是什么, 你的数据得出 index只能为 -1,0,1,2 这四种,this.comboBox1.Items.IndexOf("女");取到的值如果不是这几个,自然就赋不了值,另外有selectindex,就不需要 selecttext了

收获园豆:10
jqw2009 | 老鸟四级 |园豆:2341 | 2019-08-05 08:37

是的,得到结果为-1;
我现在就是想搞明白,为什么会这样😳

幽默访客 | 园豆:87 (初学一级) | 2019-08-05 08:44

@幽默访客: -1 就代表不选中,选中是从0开始的

jqw2009 | 园豆:2341 (老鸟四级) | 2019-08-05 08:45

@jqw2009: 这个知道, 就是想明白,DataSource已经有数据,为什么查找返回结果为-1Items我也看了 count=3);

幽默访客 | 园豆:87 (初学一级) | 2019-08-05 08:48

@幽默访客: comboBox1.Items是个集合,又不是具体的值,你用IndexOf("女") 有啥用??

jqw2009 | 园豆:2341 (老鸟四级) | 2019-08-05 08:51

@jqw2009: 谢了


            //如下
            Sexs sexs1 = new Sexs { ID = 1, Sex = "男" };
            Sexs sexs2 = new Sexs { ID = 2, Sex = "女" };
            Sexs sexs3 = new Sexs { ID = 3, Sex = "妖" };

            this.comboBox1.Items.Add(sexs1);
            this.comboBox1.Items.Add(sexs2);
            this.comboBox1.Items.Add(sexs3);

            Sexs s = new Sexs { ID = 2, Sex = "女" };
            this.comboBox1.SelectedIndex = this.comboBox1.Items.IndexOf(sexs2);//返回-1


            //如下,可找到
            this.comboBox1.Items.Add("男");
            this.comboBox1.Items.Add("女");
            this.comboBox1.Items.Add("妖");
            this.comboBox1.SelectedIndex = this.comboBox1.Items.IndexOf("女");//返回1
幽默访客 | 园豆:87 (初学一级) | 2019-08-05 09:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册