当我在设计器窗口中剪切一些控件并将它们粘贴到其他容器中时,处理来自代码的密码错误。
如果我在表单上有btnOK并且单击事件处理如下:
Private Sub btnOK_Click(...) Handles btnOK.Click
然后在设计师中我剪下按钮并将其粘贴到其他地方,Handles部分消失,生活方法。
我理解为什么会发生这种情况,像这样删除就像删除控件一样,但是从编辑器中静默删除部分代码并不是很好的行为。
在弄乱我的代码之前,是否有任何变通方法,首选项或插件可以添加一些警告?或者甚至更好,保留处理程序并留给我?
答案 0 :(得分:1)
当您从表单中删除控件时,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_Click
的函数,它会为您创建一个名为{的新函数{1}}。这是一种设计行为,你无法改变。
您可以做的是粘贴您的控件,然后转到属性窗口,切换到事件,找到btnOK_Click_1
事件并使用下拉列表选择原始函数。
或者,您可以转到代码并在原始函数的末尾添加关键字Click
。
答案 1 :(得分:1)
为了繁荣,我想对此问题添加评论。我经常需要更换系统中的按钮。这种唠叨的功能'总是增加我的工作量。我通过转到代码并使用' Handles更改所有Handles事件来最小化影响,从而注释掉这个语句。我剪切旧按钮,粘贴新按钮然后取消注释Handles语句。它可以快速解决问题,并允许我快速进行更改。我希望这会有所帮助。
答案 2 :(得分:0)
我发现的最佳方法是在DotNet中不剪切/粘贴。您应该可以将控件移入和移出其他控件,而无需剪切/粘贴。带到前面和发送到后面也派上用场。