Как правильно выровнять элементы управления в 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.LayoutStyletoHorizontalStackWithOverflow
поскольку ответ был принят, теперь есть гораздо более простой способ. Просто установите для свойства righttoleft tool strip значение True.
Я нахожу общий способ установить местоположение элемента управления в StatusStrip.
Вы можете отобразить кнопку в любом положении в StatusStrip с помощью следующих шагов.
- добавьте ToolstripLabel в StatusStrip
-
Набор текста любой объем пространства, как
toolStripStatusLabel1.Text ="";
Если макет не то, что вы хотите, нужно Шаг 2, чтобы изменить объем пространства в
toolStripStatusLabel1.Text, еще работа сделана.