Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Проблема отображения программы

Ответить
Настройки темы
C/C++ - Проблема отображения программы

Пользователь


Сообщения: 69
Благодарности: 1

Профиль | Отправить PM | Цитировать


Здраствуйте. Помогите пожалуйста решить следующую проблему.
Создал форму в С#. Создал кнопку. При нажатии на кнопку запускается функция в которой есть цикл. В нутри цикла я поставил счётчик который изменяет строку состояния ProgressBar. Дело в том что эта строка состояния изменяется только после того как функция отработала, а мне надо чтобы она изменялась во время работы цикла. Может быть есть какие-нибуть опереаторы которые обновляют главную форму или что-то другое?

Отправлено: 09:33, 08-05-2008

 

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить 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
Благодарности: 1

Профиль | Отправить 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
Благодарности: 916

Профиль | Отправить PM | Цитировать


Ну так, функция не из лёгких, по этому и заметно.

Цикл своё отрабатывает, а в это время никто не запрещает нажать на кнопку. Или сильно программа загружена в момент цикла?

Отправлено: 14:32, 08-05-2008 | #4


Пользователь


Сообщения: 69
Благодарности: 1

Профиль | Отправить PM | Цитировать


Когда цикл идёт, то я нажимаю на кнопку, но анимации её нажатия нет, а кнопка срабатывает только после того как цикл завершиться

Отправлено: 16:39, 08-05-2008 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Проблема отображения программы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - Вид отображения папок Александр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




 
Переход