[英]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
的右側。
對我來說,它只需要兩個簡單的步驟:
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
您可以使用以下邏輯在StatusStrip
的末尾顯示Button
。
ToolstripLabel
到StatusStrip
string.Empty
ToolstripLabel
設置Padding
例如:
this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);
保留工具條標簽,將 Spring 屬性設置為 true 並在底部左對齊標簽文本
我發現您可以將 StatusStrip 布局設置為 HorizontalStackWithOverflow。 然后,對於需要在右側的 StatusStrip 上的每個控件,將控件對齊設置為右。
我更喜歡這個,因為你不需要任何額外的或虛擬的控件來對齊。
如果將狀態條標簽控件的 Spring 屬性設置為 true,則該標簽將占用 StatusStrip 中其他控件未使用的任何空間。
我找到了在StatusStrip
設置控件位置的一般方法。 您可以使用以下步驟在StatusStrip
中的任何位置顯示按鈕。
將文本設置為適當的空間,例如
toolStripStatusLabel1.Text =“”;
如果布局不是您想要的布局,請轉到步驟2更改toolStripStatusLabel1.Text
的空間量,否則工作已經完成。
將 RightToLeft 工具條屬性設置為 True。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.