2009-06-03 4 views
1

Im derzeit das Hinzufügen von Toolstrips meines eigenen Module wie:ändert Toostrip Bestellen

this.toolStripContainer.TopToolStripPanel.Controls.Add(module.Instance.Toolbar) 

kaufen sie sind dann in der Reihenfolge, dass die Module geladen, die sehr gut waren nicht. Gibt es eine Möglichkeit, sie neu zu ordnen?

Oder sollte ich eine Art Index zu meinen Modulen hinzufügen und sie in der Reihenfolge, in der ich die Toolstrips haben möchte, laden?

+0

Sehen Sie meine Bearbeitung, habe es jetzt funktioniert. – BFree

Antwort

0

landete ich alle Toolstrips zu einer Liste hinzugefügt ... die Liste von ToolStrip.Tag Sortierung ... und sie dann auf die Kontrollliste hinzugefügt ...

Dies ist der Modul Schreiber für den Toolstrip auf eine Priorität erlaubt, ein bisschen wie Toolstrip verschmelzenden

3

Die Controls-Auflistung verfügt über eine SetChildIndex(Control child, int newIndex)-Methode. Sehen Sie, ob Sie diese Methode verwenden können, um die Steuerelemente nach Ihren Bedürfnissen zu sortieren.

EDIT: Habe gerade einen schnellen Test gemacht. Sie müssen SuspendLayout() aufrufen, bevor die Steuerelemente hinzufügen und dann ResumeLayout(), wenn Sie fertig sind:

 this.toolStripContainer1.TopToolStripPanel.SuspendLayout(); 
     this.toolStripContainer1.TopToolStripPanel.Controls.Add(t1); 
     this.toolStripContainer1.TopToolStripPanel.Controls.Add(t2); 
     this.toolStripContainer1.TopToolStripPanel.Controls.SetChildIndex(t1, 1); 
     this.toolStripContainer1.TopToolStripPanel.ResumeLayout(); 
+0

SetChildIdex scheint keine Wirkung zu haben, sollte ich das Steuerelement oder etwas auffrischen? – Tim

+0

Vielleicht versuchen Sie einen Aufruf von SuspendLayout() vor dem Hinzufügen und Neuanordnen, und dann ein ResumeLayout, nachdem Sie fertig sind: this.toolStripContainer1.TopToolStripPanel.SuspendLayout(); – BFree

+0

scheint es zu funktionieren, aber ich muss zweimal durch die Module, einmal um sie hinzuzufügen, und dann wieder, um den Index zu setzen. – Tim

0

ich so gelöst:

StripContainer.TopToolStripPanel.Join(
    Instance.MMethod.Main.ToolStripMenu, 
    StripContainer.TopToolStripPanel.Controls[ 
     StripContainer.TopToolStripPanel.Controls.Count - 1].Right, 
    0);