Не отображается прогресс бар C#
Сегодня столкнулся с проблемой. Почему когда по нажатию кнопки progressbar1.visible = true; прогресс бар всерано не отображается? Видемых причин на то нет. В чём тогда дело?
Код:
private void button2_Click(object sender, EventArgs e)
{
string desk = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
if (System.IO.File.Exists(desk+"/MyWPI Downloads/"+"aimp.exe")) //если файл существует - открыть его
{
System.Diagnostics.Process.Start(desk + "/MyWPI Downloads/" + "aimp.exe");
}
else
{
progressBar1.Visible = true;
label1.Visible = true;
Directory.CreateDirectory(desk + "/" + "MyWPI Downloads"); //создать директорию если её нет
string link = @"https://www.aimp.ru/?do=download.file&id=4"; //ссылка
WebClient webClient = new WebClient();
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(webClient_DownloadProgressChanged);
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(webClient_DownloadFileCompleted);
webClient.DownloadFileAsync(new Uri(link), desk + "/MyWPI Downloads/" + "aimp.exe"); //сохранение файла
}
}
private void webClient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
progressBar1.Visible = false; //если загрузка завершена, скрыть label и progressbar и открыть файл
label1.Visible = false;
string desk = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
System.Diagnostics.Process.Start(desk + "/MyWPI Downloads/" + "aimp.exe");
}
private void webClient_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
//если прогресс изменён
progressBar1.Maximum = (int)e.TotalBytesToReceive / 100; //Максимальное значение прогресс бара исходя из размера файла в Байтах
progressBar1.Value = (int)e.BytesReceived / 100; // при каждом новом загруженом Байте прибавить значение прогресс бара
}