98

我正在尝试右对齐StatusStrip. 我怎样才能做到这一点?

我没有看到要在ToolStripItem控件上设置的属性,该属性指定它们在 parent 上的物理对齐方式StatusStrip

如何让消息下拉右对齐?http://i.friendfeed.com/ed90b205f64099687db30553daa79d075f280b90

4

8 回答 8

241

发布后几乎立即通过 MSDN 论坛找到它:)

您可以通过将属性设置为并将属性设置为 来使用ToolStripLabel伪右对齐控件。这将导致它填满所有可用空间并将所有控件推到右侧。Textstring.EmptySpringtrueToolStripLabel

于 2009-02-03T23:47:28.373 回答
22

对我来说,它采取了两个简单的步骤:

  1. 设置MyRightIntendedToolStripItem.AlignmentRight
  2. 设置MyStatusStrip.LayoutStyleHorizontalStackWithOverflow
于 2018-09-11T15:02:17.880 回答
5

作为补充说明,这是因为在 Win32 API 中,单元格要么是固定宽度,要么是填充剩余空间 -1

int statwidths[] = {100, -1};

SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths);
SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Hi there :)");

如果我没记错的话,每个状态栏只能有一个填充单元格 (-1)。

您还可以添加第三个中间单元格并为其赋予填充属性以获得更一致的状态栏。一致,因为 Messages 在您所期望的左侧右侧有一个插图。有点像在MSDN 页面上找到的 StatusBars 的 mspaint 镜头

不过,我喜欢创造性的方法:D

于 2009-02-04T00:03:21.447 回答
4

您可以使用以下逻辑Button在末尾显示 。StatusStrip

  1. 添加一个ToolstripLabelStatusStrip
  2. 将文本设置为string.Empty
  3. 设置PaddingToolstripLabel

例如:

this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);
于 2014-09-16T13:22:28.667 回答
2

保留一个工具条标签,将 Spring 属性设置为 true 并在 BottomLeft 中为标签对齐文本

于 2017-04-18T14:23:20.253 回答
1

我发现您可以将 StatusStrip 布局设置为 Horizo​​ntalStackWithOverflow。然后,对于要在右侧的 StatusStrip 上的每个控件,将控件对齐设置为右。

我更喜欢这个,因为您不需要任何额外或虚拟控件来对齐。

于 2018-10-21T15:57:47.637 回答
0

如果将状态条标签控件的 Spring 属性设置为 true,则该标签会占用 StatusStrip 中其他控件未使用的任何空间。

于 2020-08-29T13:08:29.073 回答
-3

将 RightToLeft 工具条属性设置为 True。

于 2016-05-09T17:50:58.437 回答