Я намагаюся правильно вирівняти елемент керування в StatusStrip
. Як я можу це зробити?
Я не бачу властивості встановлювати ToolStripItem
елементи керування, які визначають їх фізичне вирівнювання для батьків StatusStrip
.
Я намагаюся правильно вирівняти елемент керування в StatusStrip
. Як я можу це зробити?
Я не бачу властивості встановлювати ToolStripItem
елементи керування, які визначають їх фізичне вирівнювання для батьків StatusStrip
.
Відповіді:
Знайшов на форумах MSDN майже відразу після публікації :)
Ви можете використовувати ToolStripLabel
елементи керування для вирівнювання псевдоправоруч, встановивши Text
властивість string.Empty
та встановити Spring
властивість true
. Це призведе до того, що він заповнить весь доступний простір і натисне всі елементи керування праворуч від місця ToolStripLabel
.
StatusStrip.LayoutStyle == ToolStripLayoutStyle.Table
(яке є типовим)
Alignment
робить майно, оскільки воно нічого не зробило в моїй заяві.
Як додаткове зауваження це пов'язано з тим, що в API Win32 клітинка має або фіксовану ширину, або заповнює решту місця -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, щоб отримати більш стислий вигляд StatusBar. Послідовно, оскільки в Повідомленнях є вставка зліва направо, де ви цього очікуєте. Трохи схожий на знімок mspaint, знайдений на сторінці MSDN для панелей стану
Мені подобається творчий підхід: 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
Я виявив, що ви можете встановити StatusStrip Layout на HorizontalStackWithOverflow. Потім для кожного елемента керування на StatusStrip, який ви хочете мати на правій стороні, встановіть елемент Alignment (Вирівнювання) на Right.
Мені це подобається більше, оскільки для вирівнювання вам не потрібні додаткові або фіктивні елементи керування.
Я знаходжу загальний спосіб встановити місце розташування елемента керування в StatusStrip
. Ви можете відобразити Кнопку в будь-якому положенні в, StatusStrip
виконавши наведені нижче дії.
Встановіть текст як відповідний простір, наприклад
toolStripStatusLabel1.Text = "";
Якщо макет не те, що ви хочете, перейдіть до кроку 2, щоб змінити кількість місця toolStripStatusLabel1.Text
, інакше робота виконана.
Установіть для властивості смужки RightToLeft значення True.