|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Проблема отображения программы |
|
C/C++ - Проблема отображения программы
|
Пользователь Сообщения: 69 |
Профиль | Отправить PM | Цитировать Здраствуйте. Помогите пожалуйста решить следующую проблему.
Создал форму в С#. Создал кнопку. При нажатии на кнопку запускается функция в которой есть цикл. В нутри цикла я поставил счётчик который изменяет строку состояния ProgressBar. Дело в том что эта строка состояния изменяется только после того как функция отработала, а мне надо чтобы она изменялась во время работы цикла. Может быть есть какие-нибуть опереаторы которые обновляют главную форму или что-то другое? |
|
Отправлено: 09:33, 08-05-2008 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Всё дело в том, что быстродействие не позволяет увидеть/заметить момент срабатывания и функция в цикле быстро отрабатывает. Нужно вносить либо же паузу (для лёгких функций, каким и прогресса нечего городить)
private void button1_Click(object sender, EventArgs e) { while (progressBar1.Value < progressBar1.Maximum) { progressBar1.Value = progressBar1.Value + 10; System.Threading.Thread.Sleep(100); } } |
Отправлено: 13:30, 08-05-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать C полосой получилось и без задержки, но вот с Label не получается. Т.е Полоса состояния работает а Label не отображается. И ещё такой вопрос. Как мне сделать так, чтобы при работе цикла я к примеру мог нажать кнопу, которая будет сворачивать программу.
З.Ы. код сворачивания не нужен. Код: //в j содержится количество всех строк f1= new FileStream(fil, FileMode.Open, FileAccess.Read); int kolp = j; StreamReader sss = new StreamReader(f1);; String sss1=""; int o = 0; float z; int z1 = 0; ; while ((sss1 = sss.ReadLine()) != null) { sss1 = sss1 + vstavka; //должна быть Функция хеширования o++; j--; if (j % 100== 0) { label20.Text = Convert.ToString(o); label21.Text = Convert.ToString(j); z = ((o*100)/kolp); z1= Convert.ToInt32(Math.Ceiling(z)); progressBar2.Value = z1; } } label20.Text = Convert.ToString(o); label21.Text = Convert.ToString(j); progressBar2.Value = z1; f1.Close(); |
Отправлено: 14:23, 08-05-2008 | #3 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Ну так, функция не из лёгких, по этому и заметно.
Цикл своё отрабатывает, а в это время никто не запрещает нажать на кнопку. Или сильно программа загружена в момент цикла? |
Отправлено: 14:32, 08-05-2008 | #4 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Когда цикл идёт, то я нажимаю на кнопку, но анимации её нажатия нет, а кнопка срабатывает только после того как цикл завершиться
|
|
Отправлено: 16:39, 08-05-2008 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - Вид отображения папок | Александр357 | Microsoft Windows 7 | 1 | 25-11-2009 00:31 | |
Интерфейс - Пользовательская настройка порядка отображения меню пуск -> все программы | hotdog_01 | Microsoft Windows 7 | 3 | 17-11-2009 10:35 | |
Интерфейс - Проблема с четкостью отображения после смены монитора | orioniss | Microsoft Windows 7 | 2 | 28-09-2009 15:02 | |
Интерфейс - Проблема отображения окон программ, и их значков в трее. | __sa__nya | Microsoft Windows 2000/XP | 1 | 21-09-2009 13:57 | |
проблема отображения иврита internet Explorer 6 | asas | Хочу все знать | 17 | 20-04-2008 02:06 |
|