C # - отображение загрузки 1-100% в течение 4 секунд
-
05-07-2019 - |
Вопрос
У меня есть ярлык на заставке, который отображается в течение 4 секунд. Я пытаюсь заставить ярлык отображать процесс загрузки в процентах. Очевидно, это просто для того, чтобы показать пользователю, что программа действительно запускается, а не "загружается" на самом деле. что-нибудь. Есть ли способ, чтобы ярлык отображал процент (от 1% до 100%) в течение 4 секунд? Немного растерялся, как это сделать.
Решение
Поместите элемент управления Timer в форму и установите для его свойства Interval значение 40, а для свойства Enabled - значение true. Создайте переменную уровня формы следующим образом:
private int _Progress = 0;
В событии Timer Tick введите этот код:
if (_Progress < 100)
{
_Progress++;
label1.Text = _Progress.ToString() + "%";
}
else
{
timer1.Enabled = false;
}
Таймеры не совсем точны с точностью до миллисекунды, поэтому это не займет ровно 4 секунды, но сработает.
Другие советы
Если вы говорите о WinForms (не WPF), самым простым способом было бы управление таймером. Установите время ожидания на 40 мс (4 с = 4000 мс. 4000 мс / 100 обновлений = 40 мс). Создайте целое число на уровне класса для отслеживания прогресса. Тогда ваш код для события OnTick будет выглядеть примерно так ...
if(progress < 100)
{
progress++;
progessLabel.Text = String.Format("Loading... Progress: {0}%", progress);
}
else
{
timer.Enabled = false;
}
Таймер с интервалом в 100 миллисекунд будет самым простым подходом. Сохраняйте количество вызовов таймера и обновляйте индикатор выполнения на 2,5 процента каждый тик.
Хотя это сработает, я бы сказал, что индикатор прогресса не идеален для этой ситуации. Вместо этого лучше использовать анимированную графику, так как она показывает, что ваша программа запускается, но не вводит в заблуждение, как индикатор выполнения. Р>
Я думаю, что Microsoft регулярно совершает эту ошибку, используя вводящие в заблуждение индикаторы выполнения в некоторых приложениях.