C# 你没开枪吗?

C# 你没开枪吗?,c#,.net,winforms,checkbox,C#,.net,Winforms,Checkbox,我对此做了大量阅读,发现的每个问题都涉及ASP.NET。我正在使用Winforms。我的主窗体上有一个复选框(称为CheckboxPicture)。当用户更改此复选框的状态时,我想运行一些命令 这应该做到: public void CheckboxPicture_CheckedChanged(Object sender, EventArgs e) { MessageBox.Show("Check State Changed"); } 但是,选中和取消选中复选框都不起作用。ASP.NET

我对此做了大量阅读,发现的每个问题都涉及ASP.NET。我正在使用Winforms。我的主窗体上有一个复选框(称为CheckboxPicture)。当用户更改此复选框的状态时,我想运行一些命令

这应该做到:

public void CheckboxPicture_CheckedChanged(Object sender, EventArgs e)
{
    MessageBox.Show("Check State Changed");
}
但是,选中和取消选中复选框都不起作用。ASP.NET说您需要

Autopushback=true
但我没有使用ASP.NET,所以我不确定它会去哪里。

谷歌搜索“winforms复选框事件”会得到以下第一个结果:

在某些时候,他们提到:

要运行示例代码,请将其粘贴到包含名为CheckBox1的CheckBox类型实例的项目中然后确保事件处理程序与CheckedChanged事件关联。

(我的重点。)

不幸的是,它们没有显示如何“确保事件处理程序与CheckedChanged事件相关联”

简言之,在代码中的某个地方必须有以下语句:

CheckboxPicture.CheckedChanged += CheckboxPicture_CheckedChanged

换句话说,您的
CheckboxPicture\u CheckedChanged()
方法不会被magic调用,您必须确保在触发复选框的相应事件时调用它。

转到设计器中的表单。单击复选框并查看属性框。单击事件处理程序并选择CheckedChanged处理程序属性的处理程序


在WinForms中,您可以使用WinForms设计器。选中复选框,显示事件属性,然后双击CheckedChanged事件。这将为事件处理程序创建存根代码并为您打开它。您确定在某个地方有一个
CheckboxPicture.CheckedChanged+=CheckboxPicture\u CheckedChanged
语句,或者至少有一个看起来非常类似的语句?您是否确实在代码中的其他地方订阅了事件?嘿,Steve,对不起,我是C#NET新手,没有注意到事件窗口。我在VB.NET之类的代码窗口顶部查找它,但它不在那里。谢谢您不需要像Mike Nakis建议的那样添加带有代码的处理程序,尽管这是一种可能的方法。您还可以在复选框的-properties-eventhandlers中指定已经创建的处理程序。