2011-07-27 59 views
3

我在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上搜索了很多并且结果不起作用

回答

2

您的绑定代码不正确。

删除围绕它的foreach应该解决问题。

0

首先,您不希望将列表中的每个人都绑定到组合框,否则您只有列表中最多只有一个项目,您只想绑定整个列表,以便删除循环。 ,你也可以在列表声明并设置合并成一条线来得到这个(你甚至可以跳过使用名单,但我已经把它放在了可读性 - :

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

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

,并为获得所选择的文本值,我会用任何

comboBox1.Text 
为什么您使用 foreach循环

或(as per MSDN example

comboBox1.SelectedItem.ToString() 
+0

感谢该列表 –

0

首先呢?你可以将它绑定简单的像THI S:

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 
+0

评论为什么张贴相同的溶液,作为2个以前的答案?它没有增加额外的信息... – leppie

+0

当我开始写没有任何和我使用的互联网连接有点慢,自动通知我已经发布的答案,当我正在写.. – Waqas

+0

没问题:)它也发生在我身上。 – leppie

相关问题