组合框选中的文本或项目

本文关键字:文本 项目 组合 | 更新日期: 2023-09-27 18:03:45

我在winform中工作,我尝试了很多次来捕获组合框选定项的文本,但我不能,它总是空的,这是代码

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;

    }

也许有人有主意?我在谷歌上搜索了很多,结果没有工作

组合框选中的文本或项目

您的绑定代码不正确。

移除它周围的foreach,应该可以解决这个问题。

首先,您不想将列表中的每个人绑定到组合框,否则列表中最多只有一个项目,您只想绑定整个列表,因此删除循环。你也可以将list声明和设置合并到一行来得到这个(你甚至可以跳过list,但为了可读性,我把它留下了:

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

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

comboBox1.Text

或(根据MSDN示例)

comboBox1.SelectedItem.ToString()

首先你为什么使用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