Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
lennen
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
1

Как сделать бесконечный цикл при нажатии на кнопку

16.10.2015, 10:51. Просмотров 901. Ответов 3
Метки нет (Все метки)

Я пробовал написать об этом в топике Обрабатывать по 56 символов в тексте и показывать промежуточные результаты, но может я начал с сильно сложного вопроса, давайте поставим более простую задачу.
У меня есть код, от которого я ожидаю, что он выведет 5 раз разные сообщения в текстовое поле:
C#
1
2
3
4
5
6
7
for (int i = 1; i < 5; i++)
            {   
                this.Controls["richTextBox2"].Text = s;
                s = s + i.ToString();
                Thread.Sleep(1000);
                //if (i == nSymbol) i = 1;
            }
В действительности у меня код выполняется до конца, и лишь потом результат выводится в текстовое окно. Поэтому давайте разберемся сначала с таким вопросом: как вывести в текстовое поле по очереди разные сообщения, чтобы пользователь мог видеть этот процесс?

Добавлено через 19 минут
Я пока сделал с помощью this.Refresh();

Добавлено через 1 минуту
Но непонятно, как остановить цикл повторным нажатием на кнопку.

Добавлено через 5 минут
То есть пример немного меняется, все в коде описано:
C#
1
2
3
4
5
6
7
8
string s = "Hello";
                for (i = 1; i <= 5; i = i+1){
                     s = s + i.ToString();
                     this.Controls["richTextBox2"].Text = s;
                     this.Refresh(); //Отлично обновляет текстовое окно
                    Thread.Sleep(100);
                    if (!btn1pos) { i = 5; } //Не работает так, потому что пока я в цикле, данные о событиях не обновляются, видимо
                     }
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2015, 10:51
Ответы с готовыми решениями:

Как при выборе определенного значения, сделать так, чтобы при нажатии на кнопку переходило на соответствующую
Существует 4 формы. На главной форме есть ComboBox и кнопка. В ComboBox 3...

При нажатии на неактивную кнопку действует цикл
Происходит движение picturebox1 по оси х при нажатии на button1, но во время...

Как сделать, чтобы при нажатии на кнопку, Label добавлялся в низ панели?
Здравствуйте. Есть проблема, не знаю как решить. Подскажите пожалуйста. Суть...

Как сделать что бы при нажатии на кнопку форма открывалась на весь экран?
Что как

Реализовать один цикл анимации при нажатии на кнопку
Что я хочу сделать. Пользователь нажимает картинку - происходит один цикл...

3
Даценд
Модератор
Эксперт .NET
4152 / 3936 / 2606
Регистрация: 20.04.2015
Сообщений: 7,135
16.10.2015, 11:00 2
Лучший ответ Сообщение было отмечено lennen как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Timer tmr;
int i;
public Form1()
{
    InitializeComponent();
    tmr = new Timer();
    tmr.Interval = 1000;
    tmr.Tick += new EventHandler(tmr_Tick);
    button1.Text = "Start";
}
 
void tmr_Tick(object sender, EventArgs e)
{
    textBox1.Text = (i++).ToString();
}
 
private void button1_Click(object sender, EventArgs e)
{
    tmr.Enabled = !tmr.Enabled;
    button1.Text = tmr.Enabled ? "Stop" : "Start";
    i = 0;
}
1
lennen
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
16.10.2015, 11:57  [ТС] 3
Спасибо большое, все шикарно! А как правильно записать эту строчку?
C#
1
button1.ForeColor = tmr.Enabled ? 'Color.Green' : 'Color.DarkRed';
0
Даценд
Модератор
Эксперт .NET
4152 / 3936 / 2606
Регистрация: 20.04.2015
Сообщений: 7,135
16.10.2015, 12:10 4
Цитата Сообщение от lennen Посмотреть сообщение
как правильно записать эту строчку?
так как она и написана, но только без кавычек
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2015, 12:10

Как сделать чтобы при нажатии на кнопку открывался фаил расширением .exe?
Как сделать чтобы при нажатии на кнопку открывался фаил расширением .exe?

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

Как закрыть вторую форму при нажатии на кнопку?
Есть 2 формы. На 1 форме список данных и парочка кнопок, если нажимаю кнопку...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru