更改Toostrip订单

时间:2009-06-03 13:57:48

标签: c# toolstrip

我目前正在从我的单独模块添加工具条,例如:

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

按顺序购买它们是模块加载的顺序,这不是很好。有没有办法重新订购它们?

或者我应该考虑在模块中添加某种索引并按照我想要的工具条顺序将它们加载?

3 个答案:

答案 0 :(得分:3)

Controls集合有SetChildIndex(Control child, int newIndex)方法。看看您是否可以使用该方法根据需要订购控件。

编辑:刚做了快速测试。你需要在添加控件之前调用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();

答案 1 :(得分:0)

我最终将所有工具条添加到列表中...... 通过ToolStrip.Tag对列表进行排序... 然后将它们添加到控制列表中......

这允许模块编写者为工具条设置优先级,类似工具条合并

答案 2 :(得分:0)

我这样解决了:

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