我在winforms背后有这个代码,它只有一个列表框作为唯一的控件:
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);
}
运行它说:“附加信息:位置0没有行。” 调试我看到添加一个项目时调用了Event SelectedIndexChanged。 为什么用户没有选择项目,该事件被调用 以及如何解决这个问题?
答案 0 :(得分:1)
据我所知,解决这个问题的唯一方法是在对事件处理程序方法执行任何其他操作之前检查SelectedIndex!= -1。