Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227

Добавление ProgressBar

13.11.2018, 11:55. Показов 742. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, есть программа, хотел добавить отображение выполнение процесса при помощи ProgressBar.
Не знаю как правильно это сделать. Подскажите пожалуйста.
Если можно с примером.

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Ionic.Zip;
using System.Text.RegularExpressions;
 
namespace zipmov
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
 
        }
        private List<string> a = new List<string>();
       
        private void button1_Click(object sender, EventArgs e)
        {
           
 
            FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
             DialogResult result = folderBrowserDialog1.ShowDialog();
            if (result == DialogResult.OK)
            {
 
             Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.mov", SearchOption.AllDirectories).ToList().ForEach(f => listBox1.Items.Add(f));
             Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.mov", SearchOption.AllDirectories).ToList().ForEach(f => a.Add(f));
             }
 
        }
 
     
 
 
        public void zip2()
        {
            
            var startKey = a.GroupBy(x => x.Split('$')[0]);
 
            foreach (var group in startKey)
            {
 
                string fileName = Path.GetFileNameWithoutExtension(group.FirstOrDefault());
                ZipFile zip = new ZipFile();
                zip.AddFiles(group, "");
                zip.Save($"{this.saveZipPath}\\{fileName}.zip");
            }
 
 
        }
 
        
        
        private void button2_Click(object sender, EventArgs e)
        {
            zip2();
          
 
            MessageBox.Show("End.");
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
           
 
             FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
             DialogResult result = folderBrowserDialog1.ShowDialog();
             if (result == DialogResult.OK)
             {
 
             Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.ost", SearchOption.AllDirectories).ToList().ForEach(f => listBox1.Items.Add(f));
             Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.ost", SearchOption.AllDirectories).ToList().ForEach(f => a.Add(f));
             }
 
        }
 
        
        public string saveZipPath { get; set; }
        
        private void button4_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog fbd1 = new FolderBrowserDialog();
            DialogResult result = fbd1.ShowDialog();
            if (result == DialogResult.OK)
            {
                this.saveZipPath = fbd1.SelectedPath;
 
 
                
            }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void progressBar1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            progressBar1.Minimum = 0;
            progressBar1.Maximum = 100;
            progressBar1.Step = 1;
 
            for (int i = 0; i <= 100; i++)
            {
                progressBar1.PerformStep();
                label1.Text = "# FFFrrR=" + progressBar1.Value.ToString();
            }
 
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.11.2018, 11:55
Ответы с готовыми решениями:

Добавление progressbar в SplashScreen
Нужен пример как сделать splashScreen из окна с подробным описанием кода

Как сделать плавное добавление в progressBar?
чтобы не резко как в этом случае: progressBar5.Value = 100; а плавно значение достигало 100

Добавление одного процента в ProgressBar при добавлении 1 строки в listBox
Всем здравствуйте. Такой вот вопрос как привязать ко всему этому прогресс бар : foreach (string fn in fileName) if...

15
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
13.11.2018, 11:57
Цитата Сообщение от maksonech Посмотреть сообщение
хотел добавить отображение выполнение процесса
Какого процесса?
0
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
13.11.2018, 12:12  [ТС]
Цитата Сообщение от Sanya_sa Посмотреть сообщение
Какого процесса?
Архивирования файлов.

C#
1
zip2();
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
13.11.2018, 12:34
У прогрессБара есть свойство value, так же есть свойства minimum muximum, используйте их.
0
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
13.11.2018, 12:40  [ТС]
Цитата Сообщение от Sanya_sa Посмотреть сообщение
У прогрессБара есть свойство value, так же есть свойства minimum muximum, используйте их.
Я не понимаю как обьеденить
кнопка запуска
C#
1
2
3
4
5
6
7
private void button2_Click(object sender, EventArgs e)
        {
            zip2();
          
 
            MessageBox.Show("End.");
        }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            progressBar1.Minimum = 0;
            progressBar1.Maximum = 100;
            progressBar1.Step = 1;
 
            for (int i = 0; i <= 100; i++)
            {
                progressBar1.PerformStep();
                label1.Text = "# FFFrrR=" + progressBar1.Value.ToString();
            }
 
        }
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
13.11.2018, 12:53
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void Do(int min, int max)
{
    progressBarProc.Minimum = min;
    progressBarProc.Maximum = max;
    progressBarProc.Value   = min;
 
    ThreadPool.QueueUserWorkItem(o =>
    {
        for (int i = min; i < max; i++)
        {
            progressBarProc.Value++;
        }
    });
}
Примерно так. Не проверял
0
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
13.11.2018, 12:58  [ТС]
Цитата Сообщение от Sanya_sa Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void Do(int min, int max)
{
    progressBarProc.Minimum = min;
    progressBarProc.Maximum = max;
    progressBarProc.Value   = min;
 
    ThreadPool.QueueUserWorkItem(o =>
    {
        for (int i = min; i < max; i++)
        {
            progressBarProc.Value++;
        }
    });
}
Примерно так. Не проверял
не совсем понимаю, куда это применить
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
13.11.2018, 12:59
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
    var min = 0;
    var max = 100;
 
    progressBar1.Minimum = min;
    progressBar1.Maximum = max;
    progressBar1.Value = min;
 
    for (int i = min; i < max; i++)
    {
        progressBar1.Value++;
 
        var p = (i / max ) * 100f;
 
        label1.Text = "# FFFrrR=" + p.ToString();
    }
 
}
0
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
13.11.2018, 13:09  [ТС]
Цитата Сообщение от Sanya_sa Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
    var min = 0;
    var max = 100;
 
    progressBar1.Minimum = min;
    progressBar1.Maximum = max;
    progressBar1.Value = min;
 
    for (int i = min; i < max; i++)
    {
        progressBar1.Value++;
 
        var p = (i / max ) * 100f;
 
        label1.Text = "# FFFrrR=" + p.ToString();
    }
 
}
Все равно не понимаю, как реализовать, что при нажатии на кнопку, запускался процесс архивирования (он готов и все работает) и это отображалось в прогрессбаре.
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
13.11.2018, 13:11
Цитата Сообщение от maksonech Посмотреть сообщение
Все равно не понимаю, как реализовать
Ну у вас где процесс архивации происходит?
0
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
13.11.2018, 13:13  [ТС]
Цитата Сообщение от Sanya_sa Посмотреть сообщение
Ну у вас где процесс архивации происходит?
В классе
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 public void zip2()
        {
            
            var startKey = a.GroupBy(x => x.Split('$')[0]);
 
            foreach (var group in startKey)
            {
 
                string fileName = Path.GetFileNameWithoutExtension(group.FirstOrDefault());
                ZipFile zip = new ZipFile();
                zip.AddFiles(group, "");
                zip.Save($"{this.saveZipPath}\\{fileName}.zip");
            }
            backgroundWorker1.RunWorkerAsync();
 
        }
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
13.11.2018, 13:15
Цитата Сообщение от maksonech Посмотреть сообщение
В классе
Ну это скорее метод), добавляете сюда код с прогрессбаром. В чем проблема?
0
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
13.11.2018, 13:19  [ТС]
Цитата Сообщение от Sanya_sa Посмотреть сообщение
Ну это скорее метод), добавляете сюда код с прогрессбаром. В чем проблема?
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
public void zip2()
        {
            
            var startKey = a.GroupBy(x => x.Split('$')[0]);
 
            foreach (var group in startKey)
            {
 
                string fileName = Path.GetFileNameWithoutExtension(group.FirstOrDefault());
                ZipFile zip = new ZipFile();
                zip.AddFiles(group, "");
                zip.Save($"{this.saveZipPath}\\{fileName}.zip");
 
                var min = 0;
                var max = 100;
 
                progressBar1.Minimum = min;
                progressBar1.Maximum = max;
                progressBar1.Value = min;
 
                for (int i = min; i < max; i++)
                {
                    progressBar1.Value++;
 
                    var p = (i / max) * 100f;
 
                    label1.Text = "# Процесс загрузки=" + p.ToString();
                }
 
            }
попробовал так, не получилось.
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
13.11.2018, 14:14
Цитата Сообщение от maksonech Посмотреть сообщение
попробовал так, не получилось.
В смысле ошибка или GUI не реагирует??? Что не получилось то?
0
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
13.11.2018, 16:01  [ТС]
Цитата Сообщение от Sanya_sa Посмотреть сообщение
В смысле ошибка или GUI не реагирует??? Что не получилось то?
Не реагирует
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
13.11.2018, 16:27
Цитата Сообщение от maksonech Посмотреть сообщение
Не реагирует
Ну что Вам сказать... ставьте брейки, смотрите...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2018, 16:27
Помогаю со студенческими работами здесь

Консольный progressbar или progressbar в TMemo
Здравствуйте. Хочу спросить ради интереса как создать вот такой ProgressBar но с указанием своих сиволов в консоли и в...

Добавление данных в бд из input, а так же добавление картинки в папку и прописка пути
Здравствуйте, код для магазина. Есть форма с определенными полями , для упрощения сделала выбор таблицы для записи что бы потом выводить...

Добавление пустых строк вверх и вниз и добавление нескольких цифр в ячейки
День добрый. Надо добавить одну пустую строку вверх и одну в низ, так же добавить пару цифр и букву (они выделены красным цветом в...

Добавление новой записи в таблицу и осуществление запроса на добавление при загрузке формы
Здравствуйте. Есть одна просьба, подскажите как сделать или пример кода покажите на вот такую фишку, при открытии формы для ввода данных в...

Добавление поля в таблицу через запрос на добавление
Здравствуйте, подскажите как создать запрос, чтобы к таблице добавить еще одно поле. Поля, не записи. Тип запроса Добавление....


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru