簡體   English   中英

如何正確對齊 StatusStrip 中的控件?

[英]How do I right align controls in a StatusStrip?

我正在嘗試右對齊StatusStrip的控件。 我怎樣才能做到這一點?

我沒有看到要在ToolStripItem控件上設置的屬性,該屬性指定了它們在父StatusStrip上的物理對齊方式。

如何讓消息下拉以正確對齊? http://i.friendfeed.com/ed90b205f64099687db30553daa79d075f280b90

發布后幾乎立即通過 MSDN 論壇找到它:)

您可以使用ToolStripLabel通過將Text屬性設置為string.Empty並將Spring屬性設置為true來偽右對齊控件。 這將導致它填充所有可用空間並將所有控件推到ToolStripLabel的右側。

對我來說,它只需要兩個簡單的步驟:

  1. MyRightIntendedToolStripItem.Alignment設置為Right
  2. 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

您可以使用以下邏輯在StatusStrip的末尾顯示Button

  1. 添加ToolstripLabelStatusStrip
  2. 將文本設置為string.Empty
  3. ToolstripLabel設置Padding

例如:

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

保留工具條標簽,將 Spring 屬性設置為 true 並在底部左對齊標簽文本

我發現您可以將 StatusStrip 布局設置為 Horizo​​ntalStackWithOverflow。 然后,對於需要在右側的 StatusStrip 上的每個控件,將控件對齊設置為右。

我更喜歡這個,因為你不需要任何額外的或虛擬的控件來對齊。

如果將狀態條標簽控件的 Spring 屬性設置為 true,則該標簽將占用 StatusStrip 中其他控件未使用的任何空間。

我找到了在StatusStrip設置控件位置的一般方法。 您可以使用以下步驟在StatusStrip中的任何位置顯示按鈕。

  1. 將工具條標簽添加到StatusStrip
  2. 將文本設置為適當的空間,例如

    toolStripStatusLabel1.Text =“”;

  3. 如果布局不是您想要的布局,請轉到步驟2更改toolStripStatusLabel1.Text的空間量,否則工作已經完成。

將 RightToLeft 工具條屬性設置為 True。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM