簡體   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