Vb.net 处理控件剪切/粘贴上的关键字消失

Vb.net 处理控件剪切/粘贴上的关键字消失,vb.net,winforms,event-handling,Vb.net,Winforms,Event Handling,当我在designer窗口中剪切一些控件并将它们粘贴到其他容器中时,会处理与代码不相似的键盘 如果我在表单上有btnOK并单击事件处理方式如下: Private Sub btnOK_Click(...) Handles btnOK.Click 然后在designer中,我将按钮剪切并粘贴到其他地方,处理部分就消失了,使用这种方法 我理解为什么会发生这种情况,像这样剪切就像删除控件,但默默地删除部分代码并不是编辑器的好行为 在弄乱我的代码之前,是否有任何变通方法、首选项或插件可以添加一些警告?或

当我在designer窗口中剪切一些控件并将它们粘贴到其他容器中时,会处理与代码不相似的键盘

如果我在表单上有btnOK并单击事件处理方式如下:

Private Sub btnOK_Click(...) Handles btnOK.Click
然后在designer中,我将按钮剪切并粘贴到其他地方,处理部分就消失了,使用这种方法

我理解为什么会发生这种情况,像这样剪切就像删除控件,但默默地删除部分代码并不是编辑器的好行为


在弄乱我的代码之前,是否有任何变通方法、首选项或插件可以添加一些警告?或者更好的做法是保留句柄并让我删除?

当您从窗体中删除控件时,IDE会自动从代码中删除所有句柄并保持代码完整:

// Previously:
Private Sub btnOK_Click(...) Handles btnOK.Click

    MessageBox.Show("hello world")

End Sub

// Now:
Private Sub btnOK_Click(...)

    MessageBox.Show("hello world")

End Sub
当您粘贴控件并(在按钮的情况下)双击它以附加一些代码时,IDE检测到已经有一个名为
btnOK\u click
的函数,并为您创建一个名为
btnOK\u click\u 1
的新函数。这是一种你无法改变的设计行为

您可以做的是粘贴控件,然后转到“属性”窗口,切换到事件,找到
单击
事件并使用下拉菜单选择原始函数


或者,您也可以转到您的代码并添加关键字
Handles btnOK。单击原始函数末尾的

我发现的最佳方法是在DotNet中完全不剪切/粘贴。您应该能够将控件移入或移出其他控件,而无需剪切/粘贴。把它放在前面,把它放在后面也很方便。

为了繁荣,我想对这个问题补充一点意见。我经常需要更换系统中的按钮。这个烦人的“功能”总是增加我的工作量。我通过转到代码,并使用“Handles”更改所有句柄的出现,从而注释掉该语句,从而将影响降至最低。我剪切旧按钮,粘贴新按钮,然后取消对Handles语句的注释。这是一种快速解决问题的方法,允许我快速做出更改。我希望这有帮助。

有没有办法告诉VS不要删除handles关键字?我没有注意到删除和介绍几个错误!