Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
1

При заполнении ProgressBar дальнейшие действия задваиваются

16.12.2017, 16:22. Показов 441. Ответов 5
Метки нет (Все метки)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 private void button1_Click(object sender, EventArgs e)
        {
           WebClient client = new WebClient();
            Uri uri = new Uri("http://kracer.ru/DownloadGame/biki.zip");
            string File = "C:\\Быки и коровы\\biki.zip";
 
            client.DownloadFileAsync(uri, File);
 
           client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
        }
        void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
        {
            progressBar1.Minimum = 0;
            progressBar1.Maximum = 100;
 
            progressBar1.Value = e.ProgressPercentage;
            label2.Text = e.ProgressPercentage.ToString() + "%";
            if (e.ProgressPercentage == progressBar1.Maximum)
            {
                Form quest = new Form();
                quest.Show();
                try
                {
                    string zipPath = @"C:\Быки и коровы\biki.zip";
                    string extractPath = @"C:\Быки и коровы\";
                    System.IO.Compression.ZipFile.ExtractToDirectory(zipPath, extractPath);
                }
 
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
      
        }
0
Миниатюры
При заполнении ProgressBar дальнейшие действия задваиваются  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2017, 16:22
Ответы с готовыми решениями:

Событие вызываемое при заполнении progressbar
Доброго времени суток,уважаемые форумчане.Подскажите есть ли у progressbar событие вызываемое его...

При заполнении ProgressBar открыть новую форму
Попробовал следующее. Но при компиляции сначала срабатывает Thread.Sleep, и только потом открывает...

Сканирование папки и дальнейшие действия с ней
Всем привет! Разрабатываю программу на языке C# Задача следующая: программа должна наблюдать по...

WebClient: При отправке на HTTPS данные POST задваиваются
using (WebClient webClient = new WebClient()) { string address =...

5
Администратор
Эксперт .NET
13170 / 10726 / 4425
Регистрация: 17.03.2014
Сообщений: 21,624
Записей в блоге: 1
16.12.2017, 16:35 2
Dimasta1488, подпишись на событие DownloadFileCompleted и делай распаковку там. В обработчике события DownloadProgressChanged оставь только код обновления progressBar
0
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
16.12.2017, 17:07  [ТС] 3
А можно поподробней? DownloadFileCompleted где это взять? как на него подписаться?
Мне еще нужно чтобы когда будет 100% открылась новая форма, а сейчас открывается 2, хотя условие есть "(if (e.ProgressPercentage == progressBar1.Maximum))"

Добавлено через 14 минут
Я передаю в другой метод данные о ProgressBar, но все равно открывается 2 формы

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
        {
            progressBar1.Minimum = 0;
            progressBar1.Maximum = 100;
 
            progressBar1.Value = e.ProgressPercentage;
            label2.Text = e.ProgressPercentage.ToString() + "%";
 
                DownloadFileCompleted(e);
            }
 
        void DownloadFileCompleted(DownloadProgressChangedEventArgs e)
        {
            if (e.ProgressPercentage == progressBar1.Maximum)
            {
                Form quest = new Form();
                quest.Show();  
            }
        }
0
Администратор
Эксперт .NET
13170 / 10726 / 4425
Регистрация: 17.03.2014
Сообщений: 21,624
Записей в блоге: 1
16.12.2017, 17:46 4
Цитата Сообщение от Dimasta1488 Посмотреть сообщение
DownloadFileCompleted где это взять?
Там же где и событие DownloadProgressChanged которым ты уже пользуешься - в классе WebClient.

Цитата Сообщение от Dimasta1488 Посмотреть сообщение
как на него подписаться?
Механизм подписки на событие работает всегда одинаково
C#
1
Объект.Событие += Обработчик;
Цитата Сообщение от Dimasta1488 Посмотреть сообщение
А можно поподробней?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
    private void button1_Click(object sender, EventArgs e)
    {
        progressBar1.Minimum = 0;
        progressBar1.Maximum = 100;
 
        WebClient client = new WebClient();
        Uri uri = new Uri("http://kracer.ru/DownloadGame/biki.zip");
        string File = "C:\\Быки и коровы\\biki.zip";
 
        client.DownloadFileAsync(uri, File);
        client.DownloadProgressChanged += client_DownloadProgressChanged;
        client.DownloadFileCompleted += client_DownloadFileCompleted;
    }
    void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
    {
        progressBar1.Value = e.ProgressPercentage;
        label2.Text = e.ProgressPercentage.ToString() + "%";
    }
    void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
    {
        Form quest = new Form();
        quest.Show();
        try
        {
            string zipPath = @"C:\Быки и коровы\biki.zip";
            string extractPath = @"C:\Быки и коровы\";
            System.IO.Compression.ZipFile.ExtractToDirectory(zipPath, extractPath);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
0
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
16.12.2017, 17:54  [ТС] 5
Выдает ошибку
0
Миниатюры
При заполнении ProgressBar дальнейшие действия задваиваются   При заполнении ProgressBar дальнейшие действия задваиваются  
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
16.12.2017, 18:00  [ТС] 6
СПААСИБАААА, все заработало !!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2017, 18:00

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Отображение выполняющегося действия в ProgressBar
Как сделать чтобы прогресс бар отражал загрузку файла и выполнение процесса ?

При установке Win на VirtualBox в efi режиме открывается Efi Shell и дальнейшие действия ни к чему не приводят
Тема вынесена из https://www.cyberforum.ru/windows/thread1689912.html на виртул бокс - нет, на...

Дальнейшие действия
Здравствуйте Я программирую БД на Delphi 7. Создал таблицы типа Paradox, в Data module связал все...

Подключение. Дальнейшие действия
Здравствуйте . Ув. Форумчани . Вот сижу 2 день листаю страницы и не могу найти подходящего.....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.