2010-07-22 23 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語句。這是解決問題的快速方法,並允許我快速進行修改。我希望這有幫助。