2013-03-14 117 views
0

設計時支持我創建了自己的自定義的Tabcontrol類,從用戶控件派生,東陽我不喜歡等植物學自定義的Tabcontrol類的設計。它工作正常,但現在我想爲控件添加設計時支持,並且我不知道如何開始。我已經閱讀了一些教程,但沒有一篇解釋如何創建Tabcontrol。 感謝您的幫助;)C#Windows窗體:用於製表控制

編輯:

public class TabListDesigner : ParentControlDesigner 
{ 
    private DesignerVerb addVerb; 
    private DesignerVerb removeVerb; 
    private DesignerVerbCollection verbs; 

    protected TabList TabListControl { get { return this.Control as TabList; } } 

    public override DesignerVerbCollection Verbs 
    { 
     get 
     { 
      if (verbs == null) 
      { 
       verbs = new DesignerVerbCollection(); 

       addVerb = new DesignerVerb("Add TabListPage", this.AddVerbHandler) { Description = "Add a new TabListPage to the parent control." }; 
       removeVerb = new DesignerVerb("Remove TabListPage", this.RemoveVerbHandler) { Description = "Remove the currently selected TabListPage from the parent control." }; 

       verbs.Add(addVerb); 
       verbs.Add(removeVerb); 
      } 

      return verbs; 
     } 
    } 

    private void AddVerbHandler(object sender, EventArgs e) 
    { 
     this.TabListControl.Add(); 
    } 

    private void RemoveVerbHandler(object sender, EventArgs e) 
    { 
     //this.RemoveSelectedTabListPage(); 
    } 

    public override void InitializeNewComponent(IDictionary defaultValues) 
    { 
     base.InitializeNewComponent(defaultValues); 
     this.TabListControl.Add(); 
     this.TabListControl.Add(); 
    } 
} 

所以這是我做什麼,但它不工作。該TabListControl.Add() - 方法的工作(我測試運行,但我想要的設計時支持)

我希望能夠到: - 控制應與2個TabPage在設計時 初始化 - 添加/在設計時刪除的TabPages - 開關的TabPages在設計時 - 控件添加到在設計時不同的TabPages

+0

我不是一個C#用戶,這樣可能是原因,但你的問題似乎我不清楚。你能詳細說明你想做什麼,你到目前爲止嘗試過什麼,爲什麼它不起作用? – Maerlyn 2013-03-14 07:57:27

+0

那麼如果你不知道C#和特別是Windows窗體,你將無法幫助我。我不認爲有必要發佈代碼爲tab控件,因爲問題不在於tab控件本身。 – Felix 2013-03-14 09:44:03

回答

1

從理論上講,你不需要做太多,當談到渲染你的控制Visual Studio中 - 實現您的自定義用戶控件將被執行,Visual Studio將抽出的設計圖面控制,你可以重新它的大小,安排一下,等

有一點要記住的是this.DesignMode財產。如果你的控制在Visual Studio的designMode呈現的將是真實的,這樣你可以在需要運行一些自定義代碼(或無法運行一些代碼 - 這就是爲什麼你可以經常看到的WebService調用包裹在if (!this.DesignMode) { }塊的WinForms項目)。

爲了讓更多的意見,我會需要你更多的細節 - 究竟是你想這樣做(做你需要在設計一些自定義的功能)和Visual Studio的你正在使用的版本。

編輯: 好了,我只是看着更成問題 - 似乎你在有趣的時代,如果你想用的鼠標事件的工作,因爲他們是「由設計」困看看這個鏈接:http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/81606909-9310-48e8-8b46-5ecafb6e8007

所以,你不會有任何麻煩您的自定義控制的情況下,來更新您使用的是像負載事件一些邏輯 - 但對於一些更高級的(設計器中的互動),你需要深入挖掘。看this article for example(從鏈接:Remove original event behaviour of WinForm Control

+0

好的。我使用的是VS 2010.那麼問題是,我必須在設計時跟蹤鼠標在控件上的點擊...(以切換到apppendant選項卡) – Felix 2013-03-14 08:18:01

相關問題