繁体   English   中英

ComboBox选择了文本或项目

[英]ComboBox selected text or item

我正在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;


    }

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

您的绑定代码不正确。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM