这里有类似的问题,但没有一个适合我的特殊情况。
我有一个带有按钮的 Windows 窗体。该按钮附加到事件处理程序,如下所示:
private void mybutton_Click(object sender, EventArgs e)
{
// do some processing here
}
此外,还有一个组合框,其中选择的更改应该触发上面定义的按钮事件处理程序。
private void mycombobox_SelectedIndexChanged(object sender, EventArgs e)
{
mybutton_Click(sender, e); // this is the line which pops up the dialog
}
该代码在运行时完全按照预期工作,但我在编译时得到一个对话框提示,内容如下:
你调用的对象是空的
没有其他错误或警告。
谷歌搜索告诉我,如果程序试图访问设置为 null 的引用类型变量的成员,则会导致此消息错误。
但是,当我在调试模式下运行此代码时,sender 和 event(e) 变量都不为空。
那么为什么会弹出这个对话框呢?
如果这是一个错误或警告 - 它应该显示为一个错误或警告,但不会发生这种情况。
这是屏幕截图:
编辑:回答评论中提出的问题
正如您在屏幕截图中看到的那样,没有错误。
该程序运行良好 - 只是这个弹出
弹出是由mybutton_Click(sender, e);
组合框selectedIndexChanged
函数中的行:引起的。
在mybutton_Click(sender, e)
处理中不使用任何参数 sender 或 e。
我也没有安装任何 VS 扩展。