2009-06-03 1 views
1

Im в настоящее время добавляющее toolstrips из моих модулей, как отдельных:Изменить Toostrip Заказать

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

Купить они тогда в порядке, загружаемые модули, которые разве очень хорошо. Есть ли способ переупорядочить их?

Или я должен смотреть на добавление какого-либо индекса в мои модули и их лайдинг в том порядке, в котором я хочу использовать инструментальные панели?

+0

См. Мое редактирование, теперь оно работает. – BFree

ответ

0

Я в конечном итоге добавив все toolstrips к списку ... сортировки списка по ToolStrip.Tag ... , а затем добавить их в список управления ...

Это позволяет модулю писатель установить приоритет для ToolStrip, вроде как ToolStrip присоединяемого

3

Коллекция органов управления имеет метод SetChildIndex(Control child, int newIndex). Посмотрите, можете ли вы использовать этот метод для заказа элементов управления в соответствии с вашими потребностями.

EDIT: Просто сделал быструю проверку. Вам нужно позвонить SuspendLayout() перед добавлением элементов управления, а затем ResumeLayout(), как только вы сделали:

 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, похоже, не имеет эффекта, должен ли я снова освежить элемент управления или что-то еще? – Tim

+0

Возможно, попробуйте поставить вызов SuspendLayout() перед добавлением и переупорядочением, а затем ResumeLayout после того, как вы закончите: this.toolStripContainer1.TopToolStripPanel.SuspendLayout(); – BFree

+0

, похоже, работает, но мне нужно дважды прокручивать модули, один раз добавить их, а затем снова установить индекс. – Tim

0

Я решил так:

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