我正在使用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;
}
也许有人有想法?我在谷歌搜索了很多,结果没有用
答案 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
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