2016-04-04 2 views
0

У меня есть этот код позади WinForms, который просто имеет ListBox в качестве единственного контроля:Listbox: Событие SelectedIndexChanged вызывается, когда добавить один пункт

private void Form1_Load(object sender, EventArgs e) 
{ 
listBox1.DataSource = dtv; 
listBox1.DisplayMember = "Name"; 
listBox1.ValueMember = "IDName"; 
} 
private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
DataSet dss = UseDatabase.FillDataSet("Select * From Table Where IDName=" + listBox1.SelectedValue); 
string st = dss.Tables[0].Rows[0][0].ToString(); 
MessageBox.Show(st); 
} 

Run это сказать: «Дополнительная информация: Там нет строки в позиции 0.» Отладка Я вижу событие SelectedIndexChanged, когда добавляется один элемент. Почему пользователь не выбирает элемент, это событие называется И как это исправить?

+0

Каково значение SelectedIndex, когда ваш код попадает на этот обработчик событий? Немного отладки может выявить проблему – Steve

+0

Привет, я устанавливаю listBox1.ValueMember = "IDName"; on Form1_Load – user1568204

+0

Из сообщения об ошибке, которое вы получаете, вы можете сделать вывод, что используемый вами запрос не возвращает строк. Можете ли вы проверить с помощью debuger, как выглядит ваша строка запроса. – Gnqz

ответ

1

Насколько я знаю, единственный способ исправить это - проверить, что SelectedIndex! = -1, прежде чем делать что-либо еще в методе обработчика событий.

Смежные вопросы