我正在尝试右对齐StatusStrip
. 我怎样才能做到这一点?
我没有看到要在ToolStripItem
控件上设置的属性,该属性指定它们在 parent 上的物理对齐方式StatusStrip
。
如何让消息下拉右对齐?http://i.friendfeed.com/ed90b205f64099687db30553daa79d075f280b90
我正在尝试右对齐StatusStrip
. 我怎样才能做到这一点?
我没有看到要在ToolStripItem
控件上设置的属性,该属性指定它们在 parent 上的物理对齐方式StatusStrip
。
如何让消息下拉右对齐?http://i.friendfeed.com/ed90b205f64099687db30553daa79d075f280b90
发布后几乎立即通过 MSDN 论坛找到它:)
您可以通过将属性设置为并将属性设置为 来使用ToolStripLabel
伪右对齐控件。这将导致它填满所有可用空间并将所有控件推到右侧。Text
string.Empty
Spring
true
ToolStripLabel
对我来说,它采取了两个简单的步骤:
MyRightIntendedToolStripItem.Alignment
为Right
MyStatusStrip.LayoutStyle
为HorizontalStackWithOverflow
作为补充说明,这是因为在 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
您可以使用以下逻辑Button
在末尾显示 。StatusStrip
ToolstripLabel
到StatusStrip
string.Empty
Padding
为ToolstripLabel
例如:
this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);
保留一个工具条标签,将 Spring 属性设置为 true 并在 BottomLeft 中为标签对齐文本
我发现您可以将 StatusStrip 布局设置为 HorizontalStackWithOverflow。然后,对于要在右侧的 StatusStrip 上的每个控件,将控件对齐设置为右。
我更喜欢这个,因为您不需要任何额外或虚拟控件来对齐。
如果将状态条标签控件的 Spring 属性设置为 true,则该标签会占用 StatusStrip 中其他控件未使用的任何空间。
将 RightToLeft 工具条属性设置为 True。