Как использовать ProgressBar в C#

В этом примере показано, как использовать ProgressBar, чтобы показать ход выполнения долгого задания. Это очень простой пример, который выполняет синхронную задачу.

Я создал ProgressBar во время разработки. Я оставил свойство Minimum равным 0 и его свойство Maximum установлено равным 100, хотя вы можете изменить эти значения, если хотите.

Когда вы нажимаете кнопку «Перейти», выполняется следующий код.

private void btnGo_Click(object sender, EventArgs e)
{
    long max = long.Parse(txtMax.Text, NumberStyles.Any);
    long tenth = max / 10;
    long leftover = max - 9 * tenth;
    prgCount.Show();
    for (int round = 0; round < 9; round++)
    {
        prgCount.Value = round * 10;
        for (long i = 0; i < tenth; i++) { }
    }
    prgCount.Value = 90;
    for (long i = 0; i < leftover; i++) { }
    prgCount.Value = 100;
    tmrHideProgressBar.Enabled = true;
}

Этот код читает номер, введенный в текстовое поле, и делит его на 10. Затем он выполняет 9 циклов. Во время каждого цикла программа обновляет ProgressBar, чтобы отобразить объем выполняемой задачи, а затем подсчитывает до 1/10 значения, которое вы ввели.

После завершения 9 циклов программа подсчитывает все оставшиеся числа, которые вы указали. Если общее число равномерно делится на 10, то это последний 1/10 числа. Если сумма не делится на 10, то это все, что осталось после 9 циклов.

Все эти петли просто моделируют длительную задачу. В реальной программе вы бы сделали что-то более полезное, как обработка записей в базе данных.

После этого последнего цикла программа завершена, чтобы скрыть ProgressBar. К сожалению, если вы это сделаете, ProgressBar исчезает так быстро, что пользователь не видит его на 100%, и это кажется немного неудобным. (Попробуйте и посмотрите.)

Чтобы этого избежать, программа включает Timer с именем tmrHideProgressBar. В следующем коде показан обработчик события Tick таймера.

private void tmrHideProgressBar_Tick(object sender, EventArgs e)
{
    prgCount.Hide();
    tmrHideProgressBar.Enabled = false;
}

Источник: http://csharphelper.com/blog/2017/06/use-progressbar-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Adblock
detector