Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
11 / 11 / 1
Регистрация: 21.03.2010
Сообщений: 71

Форма не реагирует на запросы

22.06.2010, 22:20. Показов 1729. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте! Мне необходимо заархивировать папку с индикацией процесса. Все работает, но как сделать так, чтобы в процессе архивирования форма реагировала на реакцию пользователя. Помогите пожалуйста.

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
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Core;
 
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        void ShowProgress(object sender, ProgressEventArgs e)
        {
            progressBar1.Value = Convert.ToInt32(e.PercentComplete);
        }
 
        void ProcessFile(object sender, ScanEventArgs e)
        {
            label1.Text = e.Name;
        }
 
        void ProcessDirectory(object sender, DirectoryEventArgs e)
        {
            if (!e.HasMatchingFiles)
            {
                label2.Text = e.Name;
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            FastZipEvents events = new FastZipEvents();
 
            TimeSpan interval = TimeSpan.FromSeconds(1);
 
            events.ProcessDirectory = new ProcessDirectoryHandler(ProcessDirectory);
            events.ProcessFile = new ProcessFileHandler(ProcessFile);
 
            events.Progress = new ProgressHandler(ShowProgress);
            events.ProgressInterval = interval;
 
            FastZip fZip = new FastZip(events);
 
            fZip.CreateZip(@"C:\archive.zip", @"C:\test", true, "");
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.06.2010, 22:20
Ответы с готовыми решениями:

Компьютер сильно тормозит, по долгу реагирует на запросы
Помогите, пожалуйста, разобраться что с компьютером. В один день перестало все работать, заходить могла только в безопасном режиме....

Форма не реагирует
Доброго времени суток, форумчане. Столкнулся с проблемой, которая не дает покоя. Хочется исправить (если возможно такое), данный баг. ...

Форма не реагирует на нажатия мышкой
Цель: (для локера экрана клуба) Создать 2 формы, одна на весь экран, вторая форма с текстбоксом обе TopMost. Та, которая на весь...

3
Кодило
 Аватар для r0fL
251 / 179 / 23
Регистрация: 25.11.2009
Сообщений: 685
22.06.2010, 22:32
ShellArt, про потоки почитай, делай архивацию в отдельном потоке.
0
11 / 11 / 1
Регистрация: 21.03.2010
Сообщений: 71
23.06.2010, 19:38  [ТС]
попробовал сделать с помощью action, выдаёт ошибку Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "label1" не из того потока, в котором он был создан.

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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.IO;
 
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Core;
 
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            UpdateUI = new Action<object,ProgressEventArgs>(delegate(object sender, ProgressEventArgs e)
            {
                progressBar1.Value = Convert.ToInt32(e.PercentComplete);
            });
 
            UpdateFile = new Action<object, ScanEventArgs>(delegate(object sender, ScanEventArgs e)
            {
                label1.Text = e.Name;
            });
 
            UpdateDir = new Action<object, DirectoryEventArgs>(delegate(object sender, DirectoryEventArgs e)
            {
                if (!e.HasMatchingFiles)
                {
                    this.label2.Text = e.Name;
                }
            });
        }
 
        private Action<object, ProgressEventArgs> UpdateUI;
        private Action<object, ScanEventArgs> UpdateFile;
        private Action<object, DirectoryEventArgs> UpdateDir;
        private delegate void Action();
        private delegate void Action<T>(T value);
 
        private void ProgressZip(object sender, ProgressEventArgs e)
        {
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            FastZipEvents events = new FastZipEvents();
 
            TimeSpan interval = TimeSpan.FromSeconds(1);
 
            events.ProcessDirectory = new ProcessDirectoryHandler(UpdateDir);
            events.ProcessFile = new ProcessFileHandler(UpdateFile);
            events.Progress = new ProgressHandler(UpdateUI);
            events.ProgressInterval = interval;
 
            FastZip fZip = new FastZip(events);
 
            new Action(delegate() {fZip.CreateZip(@"C:\file.zip", @"C:\test1", true, ""); }).BeginInvoke(null, null);
        }
 
    }
 
}
0
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
26.06.2010, 16:56
Вот тут я тему создавала по поводу доступа к элементам управления, созданным в другом потоке. Оказалось вроде все просто. Но я с потоками работала через backgroundWorker.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.06.2010, 16:56
Помогаю со студенческими работами здесь

Форма не реагирует на события KeyPress и KeyDown
Добрый день! Подскажите пожалуйста, меняю справку в чужом проекте с *.hlp на *.chm. Привязываю ко всем формам обработчики KeyDown, чтобы...

Почему форма не реагирует на сообщение wm_paint при уменьшении размера окна?
На увеличение размеров окна, частичное вынесение формы за пределы экраны есть реакция в виде звукового сигнала, при уменьшении размеров...

Форма регистрации не отправляет запросы в БД
Помогите разобраться в чем ошибка, в общем цель такая при нажатии на кнопку &quot;зарегестрироваться&quot; с именем &quot;register&quot;, должна...

Составная форма+запросы для неё
Необходимо создать составную форму, в главной части которой указать дату и общую сумму товарных операций, проведенных в этот день, а в...

Внешняя печатная форма ценников. ЗАПРОСЫ
День добрый. Я начинающий программист. Есть задача, но знаний не хватает. Прошу помощи. Есть внешняя печатная форма. Мне нужно было...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru