C# VisualStudio中的事件处理程序

C# VisualStudio中的事件处理程序,c#,events,handler,C#,Events,Handler,当我尝试创建一个事件处理程序时,例如在c#中单击按钮,如果我在代码隐藏类中手动编写代码,则不会调用事件处理程序;然而,如果我双击表单上的按钮,VS自动生成事件,它将完美地工作。这种行为背后的原因是什么?有一个Form.Designer.cs文件,用于连接每个表单的事件(每个表单都有自己的设计器文件) 打开它,你会发现这样的行: button1.Click += button1_Click; ……等等 详情如下: 您的文件无法知道事件处理程序将链接到您创建的函数 如果要手动链接,请单击该按钮一

当我尝试创建一个事件处理程序时,例如在c#中单击按钮,如果我在代码隐藏类中手动编写代码,则不会调用事件处理程序;然而,如果我双击表单上的按钮,VS自动生成事件,它将完美地工作。这种行为背后的原因是什么?

有一个
Form.Designer.cs
文件,用于连接每个表单的事件(每个表单都有自己的设计器文件)

打开它,你会发现这样的行:

button1.Click += button1_Click;
……等等

详情如下:


您的文件无法知道事件处理程序将链接到您创建的函数


如果要手动链接,请单击该按钮一次,然后在“属性”窗口的顶部,您将看到一个闪电符号(事件)。单击该按钮,向下滚动到单击事件,然后在那里添加您的功能。

有一个
Designer.cs
文件,其中包含每次单击的事件详细信息,这就是为什么手动编写代码时它不会调用的原因。…“不会调用事件处理程序”-显示您的事件订阅代码。手动订阅和通过表单设计器进行的订阅同样有效。还有,你指的是什么GUI框架?嗨,丹尼斯,我指的是windows窗体应用程序…这不是答案。OP问,为什么他的手动事件订阅不起作用。@Dennis这很奇怪,因为我读到它是“这个神奇的事件处理是如何发生的”。此外,OP也接受了它。我明白了,这正是当您在代码隐藏中删除事件处理程序时发生的情况,它会给您一个从Designer.cs中删除相关代码的错误。谢谢西蒙和拉胡尔。