Trollslayer Ответов: 4

Автоматическое изменение размера индикатора выполнения в полосе состояния


Как я могу изменить размер ToolStripProgressBar в StatusStrip чтобы использовать доступную ширину, когда StatusStrip изменение ширины?
Есть еще два элемента, которые имеют фиксированный размер.

4 Ответов

Рейтинг:
33

OriginalGriff

К сожалению, ToolStripProgressBar не поддерживает свойство Spring, поэтому вам придется делать это вручную:
Обработайте событие StatusStrip.Resize и измените индикатор выполнения.Свойство width.

toolStripProgressBar1.Width = statusDisplay.Width - 200;

Не забудьте установить панель прогресса.Свойство AutoSize имеет значение False, иначе изменения будут игнорироваться каждый раз, когда вы их вносите.


[no name]

Причина моего голосования 5
Решено!

Рейтинг:
0

Bo K

Другой простой вариант-поместить обычный индикатор выполнения поверх области полосы инструментов, в которой вы хотите получить прогресс, и установить свойства привязки снизу, слева, справа. Гораздо более простое решение, чем обработка событий изменения размера.


Рейтинг:
0

Trollslayer

Ах, ToolStripProgressBard не поддерживает событие изменения размера, я просто помещу текстовое поле для статуса, а затем индикатор выполнения рядом с ним и использую событие изменения размера на нем, как вы говорите.
Спасибо! :большой палец вверх:


OriginalGriff

ToolStripProgressBar не поддерживает событие изменения размера - но вы все равно этого не хотите, так как пытаетесь заставить его бросить его! Я имел в виду событие StatusStrip.Resize - извините, я должен был быть яснее.

Toli Cuturicu

Причина моего голосования 1
фальшивый ответ

Christian Graus

Вы должны нажать "комментарий", чтобы прокомментировать ответы.

Рейтинг:
0

hippopo2008

private void statusStrip1_Resize(object sender, EventArgs e)
{
   toolStripProgressBar1.Size = new System.Drawing.Size(statusStrip1.Width - 20, 16); 
}


CHill60

Вопрос был задан, ответ и решение принято почти 7 лет назад. Вы не добавили ничего нового к теме