VB.NET:如何更改单击事件的设置

VB.NET:如何更改单击事件的设置,vb.net,Vb.net,Visual Studio with VB.net:如果在窗体设计器上创建按钮的副本,则单击事件将添加到源按钮的单击事件处理程序中 如何改变这种行为?我希望将第二个按钮的单击事件连接到一个全新的单击处理程序代码,而不是连接到第一个按钮的现有代码。复制按钮有两种方法 CTRL+C/CTRL+V(或与右键单击菜单相同)。这将创建一个带有新事件处理程序的新按钮。请注意,此新事件处理程序不是自动创建的,而是在VS设计器中单击按钮时创建的 按住CTRL键并将控件拖动到新位置。这将使用相同的事件处理程序创建

Visual Studio with VB.net:如果在窗体设计器上创建按钮的副本,则单击事件将添加到源按钮的单击事件处理程序中


如何改变这种行为?我希望将第二个按钮的单击事件连接到一个全新的单击处理程序代码,而不是连接到第一个按钮的现有代码。

复制按钮有两种方法

  • CTRL+C/CTRL+V(或与右键单击菜单相同)。这将创建一个带有新事件处理程序的新按钮。请注意,此新事件处理程序不是自动创建的,而是在VS设计器中单击按钮时创建的

  • 按住CTRL键并将控件拖动到新位置。这将使用相同的事件处理程序创建一个副本,即在现有的事件处理程序中添加一个事件处理程序。这就是你看到的行为

  • 我很想知道关于这种行为的官方参考资料,上面是通过实验发现的。我95%的时间都在使用CTRL+drag复制的方法,并且有很长一段时间都在问同样的问题。幸运的是,事件连接有一个快速修复方法-请阅读下面的内容


    如果使用了错误的方法,可以手动删除连接代码(第二个handles子句),然后双击相关按钮为其创建新的click事件处理程序(没什么大不了)。

    深入了解事件-它没有将#2挂接到#1…你认为它为什么会这样做?它为副本提供了一个新名称,并将提供新的事件处理程序too@Plutonix:不幸的是,VS将按钮的副本连接到同一事件处理程序。尝试在一个全新的项目-非常容易复制。所以我不知道为什么否决票对我的老项目或新项目都不起作用。每个按钮1个处理程序(VS2005和VS2012)@puropoix:我认为这取决于用户的复制习惯。请看我的答案。@neolik这实际上是一个方便的功能,可以让你克隆或复制一个控件谢谢-但是“没什么大不了的”,因为我总是需要编辑它,因为我倾向于使用CTRL+drag。我原以为在Visual Studio中会有配置此行为的选项,但没有找到任何选项。@user3265070:使用CTRL+C/CTRL+V不是选项吗?除此之外,我想指出,如果您花费大量时间复制/粘贴和绑定控件,您可能需要重新考虑您的设计,即使用动态绑定或某种自动化程度的框架。根据我的经验,在正常的工作流中,创建控件处理程序只占开发时间的0.01%。