Иван

25.04.2025

Как сделать панель загрузки в WinForm

Подскажите как можно в окне приложения добавить панель загрузки, которая будет отвечать за выполнения процедур из БД и показывать в процентах выполненный объем работы, при этом чтобы сама форма продолжала оставаться активной.

Операционная система: Windows
Статус: вопрос решён

screenshot1

Вячеслав

клиент

25.04.2025

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

Иван

клиент

25.04.2025

Вячеслав, можете пожалуйста привести пример реализации, не смог найти достаточно информации на этот счет

Вячеслав

клиент

25.04.2025

Иван, вариант реализации:
private async Task GetDataAsync()
{
progressBar1.Value = 0;
await Task.Run(() =>
{
for (int i = 0; i <= 100; i++)
{
System.Threading.Thread.Sleep(100); // Имитация долгой загрузки
Invoke((MethodInvoker)(() => progressBar1.Value = i));
}
});
}

private void buttonStart_Click(object sender, EventArgs e)
{
GetDataAsync();
}

Чтобы комментировать, необходимо авторизоваться или зарегистрироваться.

Все советы и рекомендации, размещённые на форуме, носят исключительно информационный характер и не являются официальной инструкцией.
Перед применением любых советов убедитесь в их актуальности и безопасности для вашей конкретной ситуации. Правила форума.

Нужна удалённая помощь?