Вывод прогресс бара в другую форму c# winforms
Сделал установку в одном окне, вод код:
private void pictureBox5_Click(object sender, EventArgs e)
{
string mpapartment = path + @"\update\x64\dlcpacks\mpapartment\dlc.rpf";
string url = "SERVER";
check();
MessageBox.Show(mpapartment);
MessageBox.Show("Загрузка началась.");
wc.DownloadFileAsync(new Uri(url), mpapartment);
Thread.Sleep(1000);
Form ifrm = new Form1();
ifrm.Show(); // отображаем Form2
this.Hide(); // скрываем Form1 (this - текущая форма)
}
Мне надо как-то вывести это все дело в другую форму с ProgressBar
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Создайте метод в другой форме
public void SetProgress(int value)
{
progressBar1.Value = value;
}
Потом измените основной
private void pictureBox5_Click(object sender, EventArgs e)
{
string mpapartment = Path.Combine(path, @"update\x64\dlcpacks\mpapartment\dlc.rpf");
string url = "SERVER";
Form ifrm = new Form1();
ifrm.Closed += (s, e) => this.Show();
WebClient client = new WebClient();
client.DownloadProgressChanged += (s, e) => { ifrm.SetProgress(e.ProgressPercentage); };
client.DownloadFileCompleted += (s, e) => ifrm.Close();
client.DownloadFileAsync(new Uri(url), mpapartment);
ifrm.Show();
this.Hide();
}
Есть кстати решение получше, посовременнее, с использовением HttpClient вместо устаревшего WebClient и нормальной асинхронностью.