Как правильно выровнять элементы управления в StatusStrip?

Я пытаюсь правильно выровнять элемент управления в StatusStrip. Как я могу это сделать?

Я не вижу свойства, чтобы установить на ToolStripItem элементы управления, указывающие их физическое выравнивание на родительском StatusStrip.

Как получить выпадающие сообщения, чтобы быть выровненными по правому краю? http://i.friendfeed.com/ed90b205f64099687db30553daa79d075f280b90

7 ответов


нашел его через форумы 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) на строку состояния.

вы также можете добавить третью среднюю ячейку и дать ей свойство fill, чтобы получить более согласованную строку состояния. Согласовано, потому что сообщения имеют вставку слева справа, где вы ожидаете этого. Немного похоже на выстрел mspaint, найденный на страница MSDN для панелей состояния

Мне нравится творческий appreach, хотя: D


вы можете отобразить Button в конце StatusStrip используя логику ниже.

  1. добавить ToolstripLabel до StatusStrip
  2. Набор текста string.Empty
  3. Set Padding на ToolstripLabel

например:

this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);

сохраните метку Toolstrip, установите свойство Spring как true и выровняйте текст метки в BottomLeft


для меня это заняло два простых действия:

  1. Set MyRightIntendedToolStripItem.Alignment до Right
  2. Set MyStatusStrip.LayoutStyle to HorizontalStackWithOverflow

поскольку ответ был принят, теперь есть гораздо более простой способ. Просто установите для свойства righttoleft tool strip значение True.


Я нахожу общий способ установить местоположение элемента управления в StatusStrip. Вы можете отобразить кнопку в любом положении в StatusStrip с помощью следующих шагов.

  1. добавьте ToolstripLabel в StatusStrip
  2. Набор текста любой объем пространства, как

    toolStripStatusLabel1.Text ="";

  3. Если макет не то, что вы хотите, нужно Шаг 2, чтобы изменить объем пространства в toolStripStatusLabel1.Text, еще работа сделана.