如何右对齐 StatusStrip 中的控件?
我正在尝试右对齐 中的控件StatusStrip
。 我怎样才能做到这一点?
我没有看到在 ToolStripItem
控件上设置的属性来指定其在父 StatusStrip
上的物理对齐方式。
如何使“消息”下拉列表右对齐? http://i.friendfeed.com/ed90b205f64099687db30553daa79d075f280b90
I am trying to right align a control in a StatusStrip
. How can I do that?
I don't see a property to set on ToolStripItem
controls that specifies their physical alignment on the parent StatusStrip
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
发布后几乎立即通过 MSDN 论坛找到它:)
您可以使用
ToolStripLabel
通过将Text
属性设置为string.Empty
并设置Spring< 来伪右对齐控件/code> 属性设置为
true
。 这将导致它填充所有可用空间并将所有控件推到ToolStripLabel
结束。Found it via MSDN forums almost immediately after posting :)
You can use a
ToolStripLabel
to pseudo right align controls by setting theText
property tostring.Empty
and setting theSpring
property totrue
. This will cause it to fill all of the available space and push all the controls to the right of theToolStripLabel
over.对我来说,只需要两个简单的步骤:
MyRightIntendedToolStripItem.Alignment
设置为Right
MyStatusStrip.LayoutStyle
设置为HorizontalStackWithOverflow
For me it took two simple steps:
MyRightIntendedToolStripItem.Alignment
toRight
MyStatusStrip.LayoutStyle
toHorizontalStackWithOverflow
作为补充说明,这是因为在 Win32 API 中,单元格要么是固定宽度,要么填充剩余空间 -1
如果没记错的话,每个状态栏只能有一个填充单元格 (-1)。
您还可以添加第三个中间单元格并为其指定填充属性,以获得外观更一致的状态栏。 之所以一致,是因为“消息”在您期望的位置左侧有一个插图。 有点像在 MSDN 页面上找到的 mspaint 镜头StatusBars
不过我喜欢这种创意方式:D
As an added note this is due to the fact that in the Win32 API a cell is either fixed width or fills the remaining space -1
If memory serves me correctly you can have only one fill cell (-1) per statusbar.
You could also add a third middle cell and give this the fill property to get a more concistent looking StatusBar. Consistent because Messages has an inset to its left right where you'd expect it. A bit like the mspaint shot found on the MSDN page for StatusBars
I like the creative appreach though :D
您可以使用以下逻辑在
StatusStrip
末尾显示Button
。ToolstripLabel
添加到StatusStrip
string.Empty
ToolstripLabel
的Padding
代码>例如:
You can display the
Button
at the end of theStatusStrip
by using the logic below.ToolstripLabel
to theStatusStrip
string.Empty
Padding
for theToolstripLabel
For example:
保留 Toolstrip 标签,将 Spring 属性设置为 true 并让标签在 BottomLeft 中对齐文本
Keep a Toolstrip label , set Spring property as true and for label align text in BottomLeft
我发现您可以将 StatusStrip 布局设置为 HorizontalStackWithOverflow。
然后,对于 StatusStrip 上您想要位于右侧的每个控件,将控件对齐方式设置为右。
我更喜欢这个,因为您不需要任何额外的或虚拟的控件来对齐。
I found that you can set the StatusStrip Layout to HorizontalStackWithOverflow.
Then, for each control on the StatusStrip that you want on the right side, set the control Alignment to Right.
I like this better since you don't need any extra or dummy controls to align.
如果将状态条标签控件的 Spring 属性设置为 true,则该标签将占用 StatusStrip 中其他控件未使用的任何空间。
If you set a status strip label control’s Spring property to true, then that label takes up any space not used by other controls in the StatusStrip.
将 RightToLeft 工具条属性设置为 True。
Set the RightToLeft tool strip property to True.