2013-03-27 137 views
1

我在設計器中添加了表單控件到我的表單。但我需要重寫該控件的WndProc。我可以做到這一點,而不是創建一個新的控制擴展舊的控制?因爲當我向舊的像這樣我的設計師將不再工作:C#WndProc事件處理程序

partial class ThatControlWithWndProc : TheControlIActuallyWant {} 

或者我怎樣才能讓我的設計師與我創造了這個新的控制工作,而不是把我的錯誤?

+0

我非常確定,設計師仍然保持不變,因爲控制仍然是'System.Windows.Form.Control'的子類。 – 2013-03-27 18:46:04

回答

0

如果您只是直接編輯0​​文件來引用您的重寫控件,並確保它遵循控件的設計器兼容規則(如具有默認構造函數,而不依賴任何其他初始化),您應該沒事的。

+0

什麼是默認的構造函數應該是什麼樣的?我添加了一個空的「ThatControlWithWndProc(){}」,設計師仍然給我一個錯誤「要麼未申報,要麼從未分配過」。 – user1340531 2013-03-27 18:59:32

+0

如果你添加一個默認構造函數,它需要調用'InitializeComponent();'(儘管如此,只要其中一個基類有一個基類,你就不會嚴格需要一個。)如果你繼續得到錯誤,請發佈整個消息和堆棧跟蹤(如果有)。 – RichieHindle 2013-03-27 19:11:15