将组合框索引设置为 -1 时的空指针

nullpointer when setting combobox index to -1

我有一个从数据库中获取数据的组合框 table。

当 Selected 索引更改时,我想将选择的值发送到文本框,然后清除选择。

private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    MainTextBox.Text = ComboBox.SelectedValue.ToString();
    ComboBox.SelectedIndex = -1;
}

这会将数据获取到文本框并清除组合框,但也会给出空指针异常。

这一行本身工作正常:

MainTextBox.Text = ComboBox.SelectedValue.ToString();

这一行本身工作正常:

ComboBox.SelectedIndex = -1;

我该如何解决?

当您设置 ComboBox.SelectedIndex = -1 时,由于索引已更改,将再次调用 ComboBox_SelectedIndexChanged 函数。

当第二次调用该函数时,NullReferenceException 被抛出,因为 ComboBox.SelectedValue 被设置为 nullSelectedIndex 等于 -1

解决方案:

private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    if(ComboBox.SelectedIndex != -1)
    {
        MainTextBox.Text = ComboBox.SelectedValue.ToString();
        ComboBox.SelectedIndex = -1;
    }
}