10

在 VS2012 设计器中剪切和粘贴控件时,有没有办法维护事件处理程序分配?例如,我有一个图形控件,它在事件存根中有一个带有代码的 Load 事件。如果我剪切并粘贴图形控件,则 Load 事件不再显示为在属性编辑器中具有事件处理程序分配。我必须使用 Load 事件旁边的下拉框为 Load 事件重新选择我现有的事件处理程序代码(重做分配)。有没有办法在不丢失事件处理程序分配的情况下剪切和粘贴控件?

在 Delphi 中,我可以自由地剪切和粘贴控件,并且事件处理程序分配是剪贴板文本的一部分,因此当控件粘贴到窗体或框架上时它们会被保留。我希望有一种方法可以对 Visual Studio 2012 和 C# 项目做同样的事情。

4

3 回答 3

5

您需要使用文档大纲

View > Other Windows > Document Outline

并找到您想要的控件,然后将其拖放到目标容器中。在这种情况下,您不会错过任何活动。

于 2019-06-26T09:54:36.590 回答
4

使用 Visual Studio 设计器剪切或复制控件时,只会复制控件的属性。这是设计使然,在我看来,这是合理的。如果您在复制控件和分配或复制的所有相同事件处理程序的位置,大多数情况下这将是反直觉的。

听起来控件保持在同一个表单中。在这种情况下,大多数情况下拖动和放置控件就足够了。

于 2013-02-02T03:25:14.670 回答
0

重新分配事件的一种方法如下:

  • 双击粘贴的控件,它会创建一个名称如下的事件:

    button1_Click_1(...)
    
  • 现在将函数名称更改为原始名称button1_Click,IDE 会显示有关函数重复的警告,单击确定,然后删除您已经创建的函数。

于 2015-05-20T08:26:42.830 回答