2

这是一个简单的场景:

我通过双击其字段(在事件部分)将事件添加到表单上的控件。但是,然后我认为这是不必要的,并删除了自动生成的方法。我将运行该程序,它给出一个错误,告诉我该事件仍然存在,InitializeComponent()我必须从那里删除它。

那么,有没有办法避免“手动”删除事件?反正有没有完全删除它而不留下任何痕迹(特别是在InitializeComponent())?

更新:另外,出现了另一个问题:

当我从代码中删除方法时,事件字段中的方法名称将消失。那么,如果InitializeComponent()链接到这些事件,为什么不使用空事件字段进行更新?

4

6 回答 6

2

最好的方法是通过设计器中的属性网格。您可以单击重置按钮或仅删除文本,它将删除 InitializeComponent() 方法中的事件挂钩。如果你的方法在你的代码后面是空的,它也会在那里删除它:

在此处输入图像描述

如果方法主体包含代码,以防万一它在设计器中意外地重置,或者如果您的方法是从代码的其他部分引用的,那么您必须手动删除它是有道理的。Visual Studio 会谨慎行事。

如果您先删除方法主体,那么它没有删除对它的引用的原因可能部分与剪切和粘贴代码有关。如果您想将该方法移动到代码中的不同位置,则剪切它的行为将切断对它的引用。粘贴后,您会想知道为什么不再调用您的事件。同样,错误是谨慎的一面,因为开发人员追踪无关代码并不难。

于 2012-04-25T15:17:52.747 回答
2

您应该再次使用事件网格并右键单击您插入的事件。
选择重置菜单选项。这将删除 InitializeComponent 中分配的事件处理程序和代码设计器中emtpy事件的代码。

请注意,如果您在活动中添加代码,Visual Studio 不会删除新代码。

于 2012-04-25T14:53:24.163 回答
2

这与 C# 2017 有关。所以希望它可以帮助其他人。

我是 C# 的新手(或者至少重新编写它)并且遇到了同样的问题。

我注释掉了我错误地进行的事件。然后在错误列表中,您会在那里发现一个错误,因为该事件丢失了。双击它。它将带您进入“连接”事件的设计器代码。在那里,找到不需要的事件并将其注释掉/删除。小心!

于 2017-09-10T21:42:23.927 回答
1

在设计器中,您转到相关控件的事件选项卡,选择具有不需要的处理程序的事件;并删除处理程序的名称。然后再次保存表格。

我认为这不会删除方法本身(可能除非它是空的或刚刚添加)。

更新

我敢说它几乎总是删除该方法的原因是因为它可以用作另一个控件事件的处理程序。毕竟,在 UI 中,您只要求删除一个事件的处理程序;并非每个处理程序都绑定到该方法。然后是后端代码是否脏(即未保存)的问题 - 在这种情况下检查方法是否为空是不可靠的。是的,所有这些都可以解决,但是必须手动删除该方法并不完全是一个困难:) 至少这样 VS 不会最终删除您真正想要保留的方法。

于 2012-04-25T14:52:35.307 回答
1

选择控件时查看属性窗口。单击小闪光灯,您将看到列出的事件以及您的事件(单击或其他),您的事件将在其后面具有分配的方法的名称。只需删除该方法。

这会删除该方法,前提是它为空且未使用,这是非常合理的。毕竟,您可能已经在该事件处理程序中投入了大量工作。(注意:刚刚再次尝试,显然它并不总是删除空方法,即使它在几分钟前删除了。很奇怪。)

于 2012-04-25T14:52:43.107 回答
0

返回表单并按 CTRL+Z。

于 2012-04-25T14:56:04.207 回答