正常选择Combobox里面的items,就没有问题,
但是如果是人工输入了一些字符,然后再Combobox1.SelectedItem.ToString()就报错“未将对象引用设置到对象的实例”。问题2:Combobox2.DataSource = dsDBTables.Tables["TablesName"];
      Combobox2.DisplayMember = "name";
      Combobox1.SelectedItem.ToString() 为什么是:"System.Data.DataRowView"? 应该怎样才可以得到正常的值呢?

解决方案 »

  1.   

    人工输入意味着,Combobox1.SelectedItem为空,没有选择值
      

  2.   

    1 Combobox1.SelectedItem 对应的是 ComboBox1.SelectedIndex 你是选择的 不是你输入的Text
    2 ((DataRowView)ComboBox1.SelectedItem )["你要取的列"].ToString()
      

  3.   

    谢谢楼上两位兄弟.
    但是关于第1个问题: 我点击按钮之后,就获取ComboBox1里面的值,如果我的值是输入的话,应该怎样做呢?同时又存在值是选择的
      

  4.   

    comboBox 如果用绑定的话,用到3个属性,一个是DataSource,就是你给定的表,另一个是DisplayMember用来显示comboBx中的项的。还有一个就是ValueMember,这个是选择的项的实际值。附下边的小实例:private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                label1.Text = comboBox1.SelectedText.ToString() + "年龄:" + comboBox1.SelectedValue.ToString();
            }        private void button1_Click(object sender, EventArgs e)
            {
                comboBox1.Items.Clear();            DataTable dt = new DataTable();
                dt.Columns.Add("name");
                dt.Columns.Add("age");            DataRow dr1 = dt.NewRow();
                dr1["name"] = "abel";
                dr1["age"] = 22;
                dt.Rows.Add(dr1);            DataRow dr2 = dt.NewRow();
                dr2["name"] = "sease";
                dr2["age"] = 30;
                dt.Rows.Add(dr2);            comboBox1.DataSource = dt;
                comboBox1.DisplayMember = "name";
                comboBox1.ValueMember = "age";
            }其中button1是新建了一个表,并且添加了两条记录,abel:22;  sease:30 执行完后combobox1中有两条记录,显示的是abel和sease,选择abel时,窗体上的label1的内容会显示:abel:22;选择sease时,会显示 sease:30,
    其中的abel和sease就是DisplayMember,22和30就是ValueMember 
      

  5.   

    2、你直接用Text值就可以拉,如果怕text值被人工改变,就将DropDownStyle属性设置为DropDownList
      

  6.   

    Combobox 由两部分组成:编辑框和ListBox,Combobox1.SelectedItem 指的是ListBox里的被选中的项,如果编辑框里输入的值在ListBox里有,则相同项会选中,就是Combobox1.SelectedItem,否则,Combobox1.SelectedItem==null,没有选中的项。由此 可以先判断 Combobox1.SelectedItem==null,再据此处理编辑框输入的内容,编辑框的值通过 Combobox1.Text获取