如何将两个 ToolStripStatusLabel 定位到 StatusStrip 的不同侧面

How to position two ToolStripStatusLabel to different sides of StatusStrip

我正在使用 .NET 6.0 和 VS2022 IDE。如何将 2 toolStripStatusLabel1 放置在状态条控件的两个角上。我无法进行任何分组。因此,如果可能,请分享一些建议。

this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
this.toolStripStatusLabel1.Size = new System.Drawing.Size(151, 20);
this.toolStripStatusLabel1.Text = "SUM Count Average";
// 
// toolStripStatusLabel2
// 
this.toolStripStatusLabel2.Name = "toolStripStatusLabel2";
this.toolStripStatusLabel2.Padding = new System.Windows.Forms.Padding(1000, 0, 0, 0);
this.toolStripStatusLabel2.Size = new System.Drawing.Size(1151, 20);
this.toolStripStatusLabel2.Text = "Elaped Time";

您可以使用以下任一解决方案来为 StatusStrip 的项目设置不同的对齐方式:

  • LayoutStyle 设置为 HorizontalStackWithOverflow
  • 或者使用标签的Spring属性来控制流量。
  • 或者改用 ToolStrip。

选项 1:将 LayoutStyle 设置为 Horizo​​ntalStackWithOverflow

LayoutStyle is Table. That's because of the custom logic that it has to support Spring 属性 时,设置 StatusStrip 项目的对齐方式不起作用。解决问题:

在代码中将需要的ToolStripStatusLabel的LayoutStyle property of the StatusStrip to HorizontalStackWithOverflow, then the Alignment设置为Right(因为ToolStripStatusLabel的Alignment属性隐藏在design-time中)。

注意: 请记住,通过更改布局样式,设置 Sprint 不再起作用。


方案二:使用标签的Spring属性来控制流量

您可以使用 3 ToolStripStatusLabel 件物品;然后对于中间的一个,将 Text 设置为空并将 Spring 设置为 true 以填充 space。那么这个项目之前的项目将左对齐,之后的项目将右对齐。


选项 3:改用 ToolStrip

使用 ToolStrip 代替 StatusStrip 并添加 2 ToolStripLabel,对于第二个,将 Alignment 设置为 Right

注意:主要的用户体验差异是缺少尺寸手柄。