用了combobox 绑定了数据源 tIDBindingSource 绑定字段 id 显示字段也是id程序当中想判断一下某个值是否在 combobox中用了各种方法蛋疼最简单的 comboBox1.Items.Contains(str) 
无法判断出来。
然后我想直接在数据源判断也出不来正确结果,为什么呢
MessageBox.Show(tIDBindingSource.Contains("123").ToString());

解决方案 »

  1.   

    comboBox1.Items.Contains(str) 可能类型错了
    item是object类型吧
    试试用int
    comboBox1.Items.Contains(int) 
      

  2.   

    嗯,是object 类型。。那我应该怎么写呢if (comboBox1.Items.Contains(int.Parse("123")))试了,这样也进不去判断
      

  3.   

    下断点,可以看到 combobox1 里面是 items[*]里面有个row 属性,然后里面有个 ItemArray = {object[3]}object[1]是我想取的
      

  4.   

    那就从数据源 tIDBindingSource 里找
    combox有三种DropDownStyle可能与这个有关
      

  5.   

    什么意思,能具体点么?不太懂这种情况,应该怎么去取。。问题已经解决,用的笨方法,dataset填充combobox的时候,循环了一遍,手动 add到了一个combobox中,去判断那个新的combobox。
    哎。感觉这方法太不专业了。。关于之前那个问题到底应该怎么比较啊
      

  6.   

    我的办法,先遍历控件,把里面的值放到数组里,再判断是否存在某个值简短代码:
    List<string> list = new List<string>();
    for (int i = 0; i < iCount; i++)
    {
        list.Add(this.comboBox1.GetItemText(this.comboBox1.Items[i]));
    }MessageBox.Show(list.Contains("1005").ToString());
      

  7.   

    楼上。。你的方法不可能行。。因为 this.comboBox1.GetItemText(this.comboBox1.Items[i]) 当combobox设置了数据源的时候这个并非是值
      

  8.   

    ComboBox combox;
                combox = new ComboBox();
                combox.Items.AddRange(new object[4]{"小赵","小钱","小孙","小李"});
                if (combox.Items.Contains("小李"))
                {
                    MessageBox.Show(combox.Items.IndexOf("小李").ToString());
                }
      

  9.   

    实在不行就
    comboBox1.Items.Contains(new ...item("aaaa")) new一个项试试
      

  10.   

    comboBox1.Items.find(deletge(object a){return a.tostring()=="dsdsds";})
      

  11.   

    你绑定了,要用DataRow[]=Combobox.items好像是这样,反正当你绑定之后,如果直接取值是不对的,具体怎么操作忘 了,额···好久木有用了