Как правильно выровнять элементы управления в StatusStrip?
Я пытаюсь правильно выровнять элемент управления в StatusStrip
. Как я могу это сделать?
Я не вижу свойства, чтобы установить на ToolStripItem
элементы управления, указывающие их физическое выравнивание на родительском StatusStrip
.
7 ответов
нашел его через форумы MSDN почти сразу после публикации:)
можно использовать ToolStripLabel
псевдо правильно выровнять элементы управления по задание Text
свойство string.Empty
и параметр Spring
свойство true
. Это заставит его заполнить все доступное пространство и нажать все элементы управления справа от ToolStripLabel
более.
как добавленное Примечание это связано с тем, что в 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) на строку состояния.
вы также можете добавить третью среднюю ячейку и дать ей свойство fill, чтобы получить более согласованную строку состояния. Согласовано, потому что сообщения имеют вставку слева справа, где вы ожидаете этого. Немного похоже на выстрел mspaint, найденный на страница MSDN для панелей состояния
Мне нравится творческий appreach, хотя: D
вы можете отобразить Button
в конце StatusStrip
используя логику ниже.
- добавить
ToolstripLabel
доStatusStrip
- Набор текста
string.Empty
- Set
Padding
наToolstripLabel
например:
this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);
сохраните метку Toolstrip, установите свойство Spring как true и выровняйте текст метки в BottomLeft
для меня это заняло два простых действия:
- Set
MyRightIntendedToolStripItem.Alignment
доRight
- Set
MyStatusStrip.LayoutStyle
toHorizontalStackWithOverflow
поскольку ответ был принят, теперь есть гораздо более простой способ. Просто установите для свойства righttoleft tool strip значение True.
Я нахожу общий способ установить местоположение элемента управления в StatusStrip
.
Вы можете отобразить кнопку в любом положении в StatusStrip
с помощью следующих шагов.
- добавьте ToolstripLabel в StatusStrip
-
Набор текста любой объем пространства, как
toolStripStatusLabel1.Text ="";
Если макет не то, что вы хотите, нужно Шаг 2, чтобы изменить объем пространства в
toolStripStatusLabel1.Text
, еще работа сделана.