你先看 this.comboBox1.Items.IndexOf("女"); 这个得到的结果是什么, 你的数据得出 index只能为 -1,0,1,2 这四种,this.comboBox1.Items.IndexOf("女");取到的值如果不是这几个,自然就赋不了值,另外有selectindex,就不需要 selecttext了
是的,得到结果为-1;
我现在就是想搞明白,为什么会这样😳
@幽默访客: -1 就代表不选中,选中是从0开始的
@jqw2009: 这个知道, 就是想明白,DataSource
已经有数据,为什么查找返回结果为-1
(Items
我也看了 count=3
);
@幽默访客: comboBox1.Items是个集合,又不是具体的值,你用IndexOf("女") 有啥用??
@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
折中的办法:
int index = sexs[sexs.FindIndex(c => c.Sex.Contains(s.Sex))].ID;
想搞明白为啥如图那样就不行,谢高抬贵手
– 幽默访客 5年前