ComboBox选择了文本或项目

时间:2011-07-27 09:03:19

标签: c# .net winforms

我正在使用winform我尝试了很多次来捕获comboBox所选项目的文本,而我不能,它总是空的,这是代码

List<person>op = new List<person>(); op=DAL_O.per();
        foreach(person rt in op )
        {
            comboBox1.DataSource = op;
            comboBox1.DisplayMember = "Name_person";
            comboBox1.ValueMember = "id_person";
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {

      Lbl_full_list.Text+=comboBox1.Items[comboBox1.SelectedIndex].ToString();
//or
      Lbl_full_list.Text+= comboBox1.Text;


    }

也许有人有想法?我在谷歌搜索了很多,结果没有用

3 个答案:

答案 0 :(得分:2)

您的绑定代码不正确。

删除周围的foreach,应解决问题。

答案 1 :(得分:0)

首先,您不希望将列表中的每个人绑定到组合框,否则您在列表中最多只有一个项目,您只想绑定整个列表以便删除循环。而且你也可以将列表声明和设置组合成一行来获得这个(你甚至可以跳过使用List,但我已将其保留为readablity:

List<person>op = DAL_O.per();

comboBox1.DataSource = op;
comboBox1.DisplayMember = "Name_person";
comboBox1.ValueMember = "id_person";

至于获取所选文本值,我会使用

comboBox1.Text

或(as per MSDN example

comboBox1.SelectedItem.ToString()

答案 2 :(得分:0)

首先,为什么要使用foreach循环?你可以像这样简单地绑定它:

List<person>op = new List<person>(); 
op=DAL_O.per();
comboBox1.DataSource = op;
comboBox1.DisplayMember = "Name_person";
comboBox1.ValueMember = "id_person";

关于您的原始问题,请尝试:

Lbl_full_list.Text += comboBox1.Text