C# 如何右对齐StatusStrip中的控件?
我正在尝试右对齐一个控件。我该怎么做 我没有看到要在C# 如何右对齐StatusStrip中的控件?,c#,winforms,statusstrip,C#,Winforms,Statusstrip,我正在尝试右对齐一个控件。我该怎么做 我没有看到要在ToolStripItem控件上设置的属性,该属性指定它们在父StatusStrip上的物理对齐方式 几乎在发布后立即通过MSDN论坛找到:) 通过将Text属性设置为string.Empty并将Spring属性设置为true,可以使用伪右对齐控件。这将导致它填充所有可用空间,并将所有控件推到上方的右侧。作为补充说明,这是因为在Win32 API中,单元格的宽度是固定的,或者填充了剩余空间-1 int statwidths[] = {100,
ToolStripItem
控件上设置的属性,该属性指定它们在父StatusStrip
上的物理对齐方式
几乎在发布后立即通过MSDN论坛找到:)
通过将
Text
属性设置为string.Empty
并将Spring
属性设置为true
,可以使用伪右对齐控件。这将导致它填充所有可用空间,并将所有控件推到上方的右侧。作为补充说明,这是因为在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)
您还可以添加第三个中间单元格,并将fill属性赋予该单元格,以获得外观更简洁的状态栏。一致,因为消息在其左右两侧的预期位置有一个插图。有点像在地图上找到的mspaint镜头
我喜欢创造性的方法:D您可以使用下面的逻辑在
状态条
的末尾显示按钮
ToolstripLabel
添加到StatusStrip
string.Empty
ToolstripLabel
this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);
将RightToLeft tool strip属性设置为True。保留Toolstrip标签,将Spring属性设置为True,并将label align text设置为BottomLeft对于我来说,只需两个简单步骤:
我发现可以将StatusStrip布局设置为HorizontalStackWithOverflow。 然后,对于要位于右侧的StatusStrip上的每个控件,将控件对齐设置为右侧
我更喜欢这种方式,因为您不需要任何额外的控件或虚拟控件来对齐。如果将状态条标签控件的Spring属性设置为true,则该标签会占用状态条中其他控件未使用的任何空间。创建一个Spring属性设置为true的标签工具栏项。详细信息:(是的,我知道这是一个老问题。)只有当
StatusStrip.LayoutStyle==ToolStripLayoutStyle.Table
(默认值)很好时,这才有效。一个两边都有弹簧的StatusStripLabel显示在控件的中心。我希望有一种“真正”的方法来实现这一点,但这很有效,谢谢。我想知道Alignment
属性做了什么,因为它在我的应用程序中没有做任何事情。我想知道Alignment属性做了什么,我没有看到任何这样的属性。这将只允许在带有“Spring”的标签后有一个项,其他项将不会出现,改为使用@VBobCat方法。添加第三个中间单元格并为其指定fill属性。我看不到任何此类属性。这对StatusBars有效,对StatusStrips无效,因为StatusStrips是完全受管理的代码。此答案已给出。当你回答这样一个有很多答案的老问题时,你需要先检查一下。