Próbuję wyrównać kontrolkę w pliku StatusStrip
. Jak mogę to zrobić?
Nie widzę właściwości do ustawienia na ToolStripItem
kontrolkach, która określa ich fizyczne wyrównanie na nadrzędnym StatusStrip
.
c#
winforms
statusstrip
Eric Schoonover
źródło
źródło
Odpowiedzi:
Znalazłem go na forach MSDN prawie natychmiast po wysłaniu :)
Możesz użyć
ToolStripLabel
kontrolek a to pseudo wyrównania do prawej, ustawiającText
właściwość nastring.Empty
i ustawiającSpring
właściwość natrue
. Spowoduje to wypełnienie całej dostępnej przestrzeni i przesunięcie wszystkich elementów sterujących na prawo odToolStripLabel
górnej części.źródło
StatusStrip.LayoutStyle == ToolStripLayoutStyle.Table
(który jest domyślny)Alignment
robi ta nieruchomość, ponieważ nie zrobiła nic w mojej aplikacji.W moim przypadku wymagało to dwóch prostych kroków:
MyRightIntendedToolStripItem.Alignment
naRight
MyStatusStrip.LayoutStyle
naHorizontalStackWithOverflow
źródło
Jako dodatkowa uwaga wynika to z faktu, że w Win32 API komórka ma stałą szerokość lub wypełnia pozostałą przestrzeń -1
int statwidths[] = {100, -1}; SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths); SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Hi there :)");
Jeśli pamięć mi dobrze służy, możesz mieć tylko jedną komórkę wypełnienia (-1) na pasek stanu.
Możesz również dodać trzecią środkową komórkę i nadać jej właściwość fill, aby uzyskać bardziej spójny wygląd StatusBar. Spójne, ponieważ Wiadomości mają wstawkę po lewej stronie, w miejscu, w którym można się tego spodziewać. Trochę jak strzał mspaint znaleziony na MSDN dla StatusBars
Lubię jednak kreatywne podejście: D
źródło
Możesz wyświetlić
Button
na końcuStatusStrip
, używając logiki poniżej.ToolstripLabel
doStatusStrip
string.Empty
Padding
dlaToolstripLabel
Na przykład:
this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);
źródło
Zachowaj etykietę Toolstrip, ustaw właściwość Spring na true i dla etykiety wyrównaj tekst w BottomLeft
źródło
Odkryłem, że możesz ustawić układ StatusStrip na HorizontalStackWithOverflow. Następnie dla każdej kontrolki w StatusStrip, która ma znajdować się po prawej stronie, ustaw wyrównanie kontrolki na Right.
Podoba mi się to bardziej, ponieważ nie potrzebujesz żadnych dodatkowych lub fałszywych elementów sterujących, aby wyrównać.
źródło
Jeśli ustawisz właściwość Spring kontrolki etykiety paska stanu na wartość true, ta etykieta zajmie dowolne miejsce, które nie jest używane przez inne kontrolki w StatusStrip.
źródło
Znajduję ogólny sposób ustawiania lokalizacji kontrolki w programie
StatusStrip
. Możesz wyświetlić przycisk w dowolnym miejscu w,StatusStrip
wykonując poniższe czynności.Ustaw tekst jako odpowiednią ilość miejsca, np
Jeśli układ nie jest tym, czego chcesz, przejdź do kroku 2, aby zmienić ilość miejsca, w przeciwnym razie
toolStripStatusLabel1.Text
praca została wykonana.źródło
Ustaw właściwość paska narzędzi RightToLeft na True.
źródło