2010-02-09 77 views
5

我得從SplitContainer中派生的自定義類:自定義設計的控制

namespace Builder.Components 
{ 
    public partial class ProjectSidebar : SplitContainer 
    { 
     public ProjectSidebar() 
     { 
      InitializeComponent(); 
     } 
    } 
} 

現在,當我點擊右鍵並選擇視圖設計我想看到的SplitContainer和編輯,就像我會使用默認控件(在其中放置一個面板等)。 我看到的只是一條消息來添加控件並切換到代碼視圖

如何實現這一目標?

回答

9

爲了像附加操作(稱爲動作列表和動詞,取決於它們的提供方式)或拖動可視元素(如標題或分隔條)添加設計時功能,您需要實現一個自定義設計器(通常來自ControlDesigner),它允許Windows窗體設計器瞭解如何在設計時與自定義控件進行交互。

MSDN爲a lengthy section增加了對您的控件的設計時支持。它描述了從type convertersextender providersdesigner serializationdesigner customization的所有內容。

其他資源

This article on CodeProject包含有關創建設計師爲定製控件的信息。還有一些有用的提示herethis other StackOverflow question

1

編寫控件時,需要確保爲其添加設計時間邏輯。

有關更多詳細信息,請參閱this (.NET 1.0) article on MSDNHere是2003年的另一篇文章。

+0

謝謝,但我似乎無法找到如何以及哪些設計邏輯添加到這個特定的代碼,以及如何完成在設計器中創建/填充我的控制... – MysticEarth 2010-02-09 13:56:04

3

只有Form和UserControl類具有允許您在設計時編輯其子控件的設計器。創建您自己的設計器爲SplitContainer提供相同的行爲並不是那麼簡單,主要原因是它的記錄太差,難以調試。您需要使用Reflector研究框架代碼才能正確使用它。

解決這個問題,把SplitContainer放在用戶控件中。將其Dock屬性設置爲Fill。現在很容易。