2010-07-22 57 views
2

当我在设计器窗口中剪切一些控件并将它们粘贴到其他容器中时,处理keywoards从代码中消失。处理控件切割/粘贴时的关键字消散

如果我有btnOK的形式和点击事件是这样处理的:

Private Sub btnOK_Click(...) Handles btnOK.Click 

,然后在设计师,我切按钮,将其粘贴在其他地方,把手部分刚好消失,生活的方法。

我明白为什么会发生这种情况,像这样的切割就像删除控件一样,但是从编辑器中静静地移除部分代码并不好。

有没有任何解决方法,首选项或插件添加一些警告之前搞乱我的代码?或者甚至更好,保持处理程序并离开我?

+0

是不是有办法告诉VS不要删除句柄关键字?我无法注意到删除并引入了一些错误! – vulkanino 2011-05-27 13:26:53

回答

0

我发现的最好的方法是而不是在DotNet中完全剪切/粘贴。您应该能够将控件移入和移出其他控件而无需剪切/粘贴。带到前面,并发送到后面也派上用场。

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的函数,它会为您创建一个名为btnOK_Click_1的新函数。这是一种您无法改变的设计行为。

你可以做的是粘贴你的控件,然后转到属性窗口,切换到事件,找到Click事件,并使用下拉菜单选择原始功能。

或者,您可以转到您的代码并在原始函数的末尾添加关键字Handles btnOK.Click

1

为了繁荣,我想为此问题添加评论。我经常需要更换系统中的按钮。这个唠叨的'功能'总是增加我的工作量。我通过转到代码并通过'Handles'来更改所有Handles事件,从而最小化影响,从而注释掉这个语句。我剪下旧按钮,粘贴新按钮,然后取消注释Handles语句。这是解决问题的快速方法,并允许我快速进行修改。我希望这有帮助。