我有一个组合框从数据库表中获取数据。
当选择索引更改时,我想将选择的值发送到文本框,然后清除选择。
private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
MainTextBox.Text = ComboBox.SelectedValue.ToString();
ComboBox.SelectedIndex = -1;
}
这会将数据传输到文本框并清除组合框,但也会出现空指针异常。
这一行本身很好用:
MainTextBox.Text = ComboBox.SelectedValue.ToString();
这一行本身很好用:
ComboBox.SelectedIndex = -1;
我该如何解决这个问题?
答案 0 :(得分:3)
设置ComboBox.SelectedIndex = -1
时,由于索引已更改,因此再次调用ComboBox_SelectedIndexChanged
函数。
当第二次调用该函数时,NullReferenceException
被抛出,因为ComboBox.SelectedValue
设置为null
SelectedIndex
等于-1
。
解决方案:
private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
if(ComboBox.SelectedIndex != -1)
{
MainTextBox.Text = ComboBox.SelectedValue.ToString();
ComboBox.SelectedIndex = -1;
}
}