2009-02-03 19 views
84

我正試圖在StatusStrip中對齊一個控件。我怎樣才能做到這一點?如何正確對齊StatusStrip中的控件?

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

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

+3

製作Spring屬性設置爲true的標籤工具欄項。詳細信息:http://www.dotnetperls.com/statusstrip(PS是的,我知道這是一個老問題。) – 2011-05-24 21:29:18

回答

196

發佈:)

可以使用ToolStripLabel到僞右側由Text屬性設置爲string.EmptySpring屬性設置爲true對齊控件後立即通過MSDN論壇發現了它。這將導致它填滿所有可用空間並將所有控件推到ToolStripLabel的右側。

Right aligned Messages http://i.friendfeed.com/f2fc7799d0897a4e835eedde83416f50c245cd6d

+23

這將工作**只有**如果StatusStrip.LayoutStyle == ToolStripLayoutStyle.Table(這是默認一個) – 2012-07-31 22:32:20

+10

不錯。帶有Spring的StatusStripLabel似乎以控件的中心爲中心 – mcdon 2012-10-12 14:23:39

4

作爲一個補充說明,這是由於這樣的事實:在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 page for StatusBars

我喜歡創意appreach雖然發現MSPAINT拍了一下:d

2

您可以使用下面的邏輯顯示ButtonStatusStrip結束。

  1. 添加ToolstripLabelStatusStrip
  2. 設置文本string.Empty
  3. 設置PaddingToolstripLabel

例如:

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

既然答案被接受,有現在是一個更簡單的方法。只需將RightToLeft工具條屬性設置爲True即可。

1

保持一個工具條標籤,設置彈簧屬性爲true和標籤對齊文本中BOTTOMLEFT

-1

我發現StatusStrip設置控件的位置的通用方法。 您可以使用以下步驟在StatusStrip中的任意位置顯示該按鈕。

  1. 到StatusStrip中
  2. 組文本添加ToolstripLabel作爲空間適量像

    toolStripStatusLabel1.Text =「「;

  3. 如果佈局是不是你想要的東西,得到了第2步改變toolStripStatusLabel1.Text的空間 量,否則工作已經完成。