Я намагаюся правильно вирівняти елемент керування в 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доStatusStripstring.EmptyPaddingдля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.