![]() |
Проблема отображения программы
Здраствуйте. Помогите пожалуйста решить следующую проблему.
Создал форму в С#. Создал кнопку. При нажатии на кнопку запускается функция в которой есть цикл. В нутри цикла я поставил счётчик который изменяет строку состояния ProgressBar. Дело в том что эта строка состояния изменяется только после того как функция отработала, а мне надо чтобы она изменялась во время работы цикла. Может быть есть какие-нибуть опереаторы которые обновляют главную форму или что-то другое? |
Всё дело в том, что быстродействие не позволяет увидеть/заметить момент срабатывания и функция в цикле быстро отрабатывает. Нужно вносить либо же паузу (для лёгких функций, каким и прогресса нечего городить)
Код:
private void button1_Click(object sender, EventArgs e) |
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(); |
Ну так, функция не из лёгких, по этому и заметно.
Цикл своё отрабатывает, а в это время никто не запрещает нажать на кнопку. Или сильно программа загружена в момент цикла? |
Когда цикл идёт, то я нажимаю на кнопку, но анимации её нажатия нет, а кнопка срабатывает только после того как цикл завершиться
|
Время: 17:16. |
Время: 17:16.
© OSzone.net 2001-