pin*_*dol 1 c# selectedvalue selectedindexchanged winforms
我在我的 C# 应用程序中创建一个名为 Acquisti 的类。然后我在表单构造函数中初始化它,然后在组合框 SelectedIndexChanged 事件中调用此类的方法。问题是,当我运行该程序时,出现错误,指出我创建的 Acquisti 类的对象为 null。这意味着 SelectedIndexChanged 事件在表单构造函数之前调用,不是吗?我也尝试过 SelectedValueChanged 事件,但我遇到了同样的问题。这是简单的代码:
Acquisti _acquisti;
public Form1()
{
InitializeComponent();
WindowState = FormWindowState.Maximized;
for (int i = DateTime.Now.Year; i >= 2000; i--)
annoAcquisti.Items.Add(i);
annoAcquisti.SelectedIndex = 0;
_acquisti = new Acquisti();
}
private void annoAcquisti_SelectedIndexChanged(object sender, EventArgs e)
{
_acquisti.load(ref acquistiDGV, annoAcquisti.SelectedItem.ToString());
}
Run Code Online (Sandbox Code Playgroud)
SelecteIndexChanged由于行而被调用:
annoAcquisti.SelectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)
_acquisti之后你就开始初始化了。您可以先移动该行,例如:
public Form1()
{
InitializeComponent();
_acquisti = new Acquisti(); //move it here
WindowState = FormWindowState.Maximized;
for (int i = DateTime.Now.Year; i >= 2000; i--)
annoAcquisti.Items.Add(i);
annoAcquisti.SelectedIndex = 0;
}
Run Code Online (Sandbox Code Playgroud)
由于控件移动到SelectedIndexChanged事件并且此时_acquisti仍然为空,这就是您收到异常的原因。