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
.
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
.
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ąc Text
właściwość na string.Empty
i ustawiając Spring
właściwość na true
. Spowoduje to wypełnienie całej dostępnej przestrzeni i przesunięcie wszystkich elementów sterujących na prawo od ToolStripLabel
górnej części.
StatusStrip.LayoutStyle == ToolStripLayoutStyle.Table
(który jest domyślny)
Alignment
robi ta nieruchomość, ponieważ nie zrobiła nic w mojej aplikacji.
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
Możesz wyświetlić Button
na końcu StatusStrip
, 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);
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ć.
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.
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
toolStripStatusLabel1.Text = "";
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.
Ustaw właściwość paska narzędzi RightToLeft na True.