C# 关闭表单时,对象引用未设置为对象异常的实例

C# 关闭表单时,对象引用未设置为对象异常的实例,c#,visual-studio-2010,nullreferenceexception,C#,Visual Studio 2010,Nullreferenceexception,当我想关闭我的表单时,会调用cmprospecten\u SelectedIndexChanged方法。但是CMBEROSPECTEN中的值为null,因此我得到 NullReferenceException:对象引用未设置为 反对 你知道我怎样才能解决这个问题吗? 我在以下行收到错误消息:“如果(setInMail(Convert.ToInt32(dr[0]),Convert.ToInt32(cmprospecten.SelectedValue.ToString())==true) priva

当我想关闭我的表单时,会调用
cmprospecten\u SelectedIndexChanged
方法。但是CMBEROSPECTEN中的值为null,因此我得到

NullReferenceException:对象引用未设置为 反对

你知道我怎样才能解决这个问题吗? 我在以下行收到错误消息:
“如果(setInMail(Convert.ToInt32(dr[0]),Convert.ToInt32(cmprospecten.SelectedValue.ToString())==true)

private void cmbProspecten\u SelectedIndexChanged(对象发送方,事件参数e)
{
lstonvangen.Items.Clear();
OleDbConnection con=新的OleDbConnection(connstring);

string query=“选择Ontwikkeldossier.ontwikkeldosserid[E-mailcampagne]。来自[E-mailcampagne]的CampagneID,Ontwikkeldossier其中([Ontwikkeldossier].[Startdatum]>=[E-mailcampagne].[StartdatumOpl]和[Ontwikkeldossier].[Startdatum]这实际上是一个很常见的问题。您发现在关闭表单时引发了一些UI事件,这会导致问题,因为在处理程序运行之前,已经部分处理或清理了一些内容

有时,您可以通过引入布尔值
isDisposing
字段并在
Dispose()
方法的开头将其设置为
true
来解决此问题

然后在处理程序中,如果
isDisposing
为true,则在处理程序开始时提前返回

或者,您可以添加一个布尔值
isClosing
字段并覆盖,并在覆盖内将
isClosing
设置为true


然后,如果
isClosing
为真,您可以从失败的处理程序中提前返回。

在表单上添加
cmbProspecten.SelectedIndex=-1

并像这样添加selectedindexchanged事件

private void cmbProspecten_SelectedIndexChanged(object sender, EventArgs e)
{

    if cmbProspecten.selectedindex=-1 {return ;}
    lstOntvangen.Items.Clear();

“提前返回”是什么意思?@CharlotteVancraeynest我的意思是在方法的开头放上以下内容:
if(isClosing)return;
很抱歉,我真的不懂。我是一名it专业的学生,我只懂编程的基本知识。@charlottevancraey你的意思是你不懂什么
如果(正在丢失)return;
表示方法内部?没关系,@matzone的答案有效。无论如何,感谢您抽出时间来帮助我!谢谢您的答案!!
private void cmbProspecten_SelectedIndexChanged(object sender, EventArgs e)
{

    if cmbProspecten.selectedindex=-1 {return ;}
    lstOntvangen.Items.Clear();