【问题标题】:Anchor ToolStripProgressBar to right of StatusBar(StatusStrip)将 ToolStripProgressBar 锚定到 StatusBar(StatusStrip) 的右侧
【发布时间】:2010-12-06 11:16:18
【问题描述】:

我有一个带有状态栏的表单,它有 2 个ToolStripStatusLabels,后跟一个ToolStripProgressBar。我希望 progressbar 始终锚定在状态栏的右侧 - 所以当窗口调整大小/最大化时,它应该 自动移动/重绘。

我认为这就像将第一个(左对齐)ToolStripStatusLabelSpring 属性设置为 true 一样简单,因此当窗体调整大小/增加大小并且有更多可用空间时,第一个ToolStripStatusLabel 将填满该空间并自动将ToolStripProgressBar 推到右侧。

但这不仅不符合我的要求 - 第一个 ToolStripStatusLabel 实际上覆盖第二个 StatusLabelProgressBar,基本上占据了整个状态栏。 所有的 ToolStrip 控件都没有 Anchor 甚至 MinSize。

那么我该怎么做:

  1. ToolStripProgressBar锚定在StatusBar(StatusStrip)的右侧
  2. 将一些固定大小项(例如ToolStripStatusLabel2ToolStripProgressBar)与可变大小的ToolStripStatusLabel1 混合使用,当有额外空间时会增长?

提前感谢您的时间和帮助!

~即时通讯

【问题讨论】:

    标签: winforms toolstrip


    【解决方案1】:

    对于所有可能感兴趣的人.. Anchor 属性可用,尽管仅在代码中(不在设计器中)...但无论如何,它不起作用.. 我在 Connect 中留下了一个 BUG 并得到了通用 WillNotFix消息似乎表明他们只会考虑进行重大修订。

    由于某种原因,“Spring”属性似乎不稳定。在我的超简单示例中,它正在工作,但在我做一些自定义绘画的其他一些示例中(但在 MDIPArent 中的子窗体中,后者具有ht eStatusBar) 它不是。在这些情况下,仍然有一个简单的解决方法 - 在 MDIParent 表单(具有状态栏)的 ReSize 事件中,更改 StatusLabel 的大小以使其在与宽度更改相同的比例中变大,因此它会推动 ProgressBar到状态栏的右边缘

    【讨论】:

      【解决方案2】:

      有一个简单的解决方案。制作一个假的 ToolStripStatusLabel,清空 .Text 并设置 .Spring = true;

      之后,添加您的 ToolStripProgressBar。确保顺序是标签,然后是进度条。

      【讨论】:

        【解决方案3】:

        先把 AutoSize 改成 false

        toolStripProgressBar.AutoSize = false;

        然后订阅statusStrip的大小变化事件

        statusStrip1.SizeChanged += statusStrip1_SizeChanged;

        最后在事件处理程序中更改栏的宽度

        private void statusStrip1_SizeChanged(object sender, EventArgs e)
        {
           toolStripProgressBar.Width = statusStrip1.Width - 95;
        }
        

        【讨论】:

          【解决方案4】:
          1. 将 StatusStrip、LayoutStyle 属性设置为 Horizo​​ntalStackWithOverflow。
          2. 将控件对齐设置为右,以使控件向右。

          【讨论】:

          • 这可行,但 StatusStrip 属性被命名为“LayoutStyle”,而不是“Layout”。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-08-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多