ComboBox выделенный текст или элемент - PullRequest
3 голосов
/ 27 июля 2011

Я работаю в 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, и результаты не работали

Ответы [ 3 ]

2 голосов
/ 27 июля 2011

Ваш код привязки неверен.

Удаление foreach вокруг него должно исправить проблему.

0 голосов
/ 27 июля 2011

Прежде всего, почему вы используете 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
0 голосов
/ 27 июля 2011

Для начала, вы не хотите связывать каждого человека в списке со списком, в противном случае у вас есть только один элемент в списке, вы просто хотите связать весь список, поэтому удалите цикл , А также вы можете объединить объявление списка и установку в одну строку, чтобы получить это (вы могли бы даже пропустить использование List, но я оставил его для удобства чтения:

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

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

А что касается получения выбранного текстового значения, я бы использовал

comboBox1.Text

или ( согласно примеру MSDN )

comboBox1.SelectedItem.ToString()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...