How do I right align controls in a StatusStrip?
As an added note this is due to the fact that in the Win32 API a cell is either fixed width or fills the remaining space -1
int statwidths[] = {100, -1};
SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths);
SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Hi there :)");
If memory serves me correctly you can have only one fill cell (-1) per statusbar.
You could also add a third middle cell and give this the fill property to get a more concistent looking StatusBar. Consistent because Messages has an inset to its left right where you'd expect it. A bit like the mspaint shot found on the MSDN page for StatusBars
I like the creative appreach though :D
Found it via MSDN forums almost immediately after posting :)
You can use a ToolStripLabel
to pseudo right align controls by setting the Text
property to string.Empty
and setting the Spring
property to true
. This will cause it to fill all of the available space and push all the controls to the right of the ToolStripLabel
over.
For me it took two simple steps:
- Set
MyRightIntendedToolStripItem.Alignment
toRight
- Set
MyStatusStrip.LayoutStyle
toHorizontalStackWithOverflow