Я пытаюсь выровнять элемент управления в StatusStrip
. Как я могу это сделать?
Я не вижу свойство устанавливать на элементах ToolStripItem
, которые определяют их физическое выравнивание на родительском StatusStrip
.
Я пытаюсь выровнять элемент управления в StatusStrip
. Как я могу это сделать?
Я не вижу свойство устанавливать на элементах ToolStripItem
, которые определяют их физическое выравнивание на родительском StatusStrip
.
Нашел его через форумы MSDN почти сразу после публикации:)
Вы можете использовать ToolStripLabel
для псевдо-правого выравнивания, установив для свойства Text
значение string.Empty
и установив Spring
свойство true
. Это заставит его заполнить все доступное пространство и нажать все элементы управления справа от ToolStripLabel
.
Правые выровненные сообщения http://i.friendfeed.com/f2fc7799d0897a4e835eedde83416f50c245cd6d
В качестве добавленного примечания это связано с тем, что в 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) для каждой строки состояния.
Вы также можете добавить третью среднюю ячейку и дать этому свойству заливки, чтобы получить более согласованный вид StatusBar. Согласовано, потому что в сообщениях есть вставка слева направо, где вы ожидаете этого. Немного похоже на снимок mspaint, найденный на странице MSDN для StatusBars
Мне нравится творческий подход: D
Вы можете отобразить Button
в конце StatusStrip
, используя следующую логику.
ToolstripLabel
в StatusStrip
string.Empty
Padding
для ToolstripLabel
Например:
this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);
Сохраните метку Toolstrip, установите для свойства Spring значение true и для выравнивания меток меток в BottomLeft
Поскольку ответ был принят, теперь есть намного более простой способ. Просто установите для свойства инструмента RightToLeft значение True.
Я нахожу общий способ установки расположения управления в StatusStrip
.
Вы можете отобразить кнопку в любой позиции в StatusStrip
, используя следующие шаги.
Установите текст как подходящее пространство, например
toolStripStatusLabel1.Text = "";
Если макет не то, что вы хотите, перейдите к шагу 2, чтобы изменить объем пространства
в toolStripStatusLabel1.Text
, иначе работа была выполнена.