如何右对齐 StatusStrip 中的控件?

发布于 2024-07-13 07:34:16 字数 452 浏览 9 评论 0原文

我正在尝试右对齐 中的控件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.

How do I get Messages drop down to be right aligned? http://i.friendfeed.com/ed90b205f64099687db30553daa79d075f280b90

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

梦与时光遇 2024-07-20 07:34:16

发布后几乎立即通过 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 the Text property to string.Empty and setting the Spring property to true. This will cause it to fill all of the available space and push all the controls to the right of the ToolStripLabel over.

待"谢繁草 2024-07-20 07:34:16

对我来说,只需要两个简单的步骤:

  1. MyRightIntendedToolStripItem.Alignment 设置为 Right
  2. MyStatusStrip.LayoutStyle 设置为 Horizo​​ntalStackWithOverflow

For me it took two simple steps:

  1. Set MyRightIntendedToolStripItem.Alignment to Right
  2. Set MyStatusStrip.LayoutStyle to HorizontalStackWithOverflow
情痴 2024-07-20 07:34:16

作为补充说明,这是因为在 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)。

您还可以添加第三个中间单元格并为其指定填充属性,以获得外观更一致的状态栏。 之所以一致,是因为“消息”在您期望的位置左侧有一个插图。 有点像在 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

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

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

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

动次打次papapa 2024-07-20 07:34:16

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

  1. ToolstripLabel 添加到 StatusStrip
  2. 将文本设置为 string.Empty
  3. 设置 ToolstripLabelPadding代码>

例如:

this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);

You can display the Button at the end of the StatusStrip by using the logic below.

  1. Add a ToolstripLabel to the StatusStrip
  2. Set text as string.Empty
  3. Set Padding for the ToolstripLabel

For example:

this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);
墨小墨 2024-07-20 07:34:16

保留 Toolstrip 标签,将 Spring 属性设置为 true 并让标签在 BottomLeft 中对齐文本

Keep a Toolstrip label , set Spring property as true and for label align text in BottomLeft

月下凄凉 2024-07-20 07:34:16

我发现您可以将 StatusStrip 布局设置为 Horizo​​ntalStackWithOverflow。
然后,对于 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.

是你 2024-07-20 07:34:16

如果将状态条标签控件的 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.

蓝天 2024-07-20 07:34:16

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

Set the RightToLeft tool strip property to True.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文