在TopToolStripPanel上的第二行显示4个ToolStrip,像下面这样加入 m_ToolStripList.Add(Strip);
Strip.Dock = DockStyle.None;
this.toolStripContainer1.TopToolStripPanel.Join(Strip,1);
this.toolStripContainer1.TopToolStripPanel.Update();这样显示是正确的,但是如果隐藏这些ToolStrip,然后再显示出来,他们的位置就错了,
不是挨着排列的,而是分割开一定距离,如果解决该问题?
Strip.Dock = DockStyle.None;
this.toolStripContainer1.TopToolStripPanel.Join(Strip,1);
this.toolStripContainer1.TopToolStripPanel.Update();这样显示是正确的,但是如果隐藏这些ToolStrip,然后再显示出来,他们的位置就错了,
不是挨着排列的,而是分割开一定距离,如果解决该问题?
加工具栏的时候获取一下Location保存到Tag, 如下面例子:
/// <summary>
/// 在Shell中添加ToolStrip
/// </summary>
/// <param name="Strip">工具栏</param>
/// <returns>是否成功</returns>
public override bool AddToolStrip(ToolStrip Strip)
{
m_ToolStripList.Add(Strip);
Strip.Dock = DockStyle.None;
this.toolStripContainer1.TopToolStripPanel.Join(Strip,1);
this.toolStripContainer1.TopToolStripPanel.Update();
Strip.Tag = Strip.Location;
return true;
}隐藏然后重新显示的时候,设回来:
Strip.Visible = true;
Strip.Location = (Point)Strip.Tag;
隐藏的时候不用设,显示出来的时候,把Location设回去,如此位置就对了。问题虽小,解决方案虽简单,但看过很多帖子都没这个答案。