Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# Windows Forms

Войти
Регистрация
Восстановить пароль
 
lennen
0 / 0 / 0
Регистрация: 14.09.2014
Сообщений: 123
#1

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

16.10.2015, 10:51. Просмотров 350. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сделать бесконечный цикл при нажатии на кнопку (C#):

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

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

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

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

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

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

3
Даценд
Модератор
Эксперт .NET
3696 / 3567 / 1822
Регистрация: 20.04.2015
Сообщений: 6,544
16.10.2015, 11:00 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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 / 0
Регистрация: 14.09.2014
Сообщений: 123
16.10.2015, 11:57  [ТС] #3
Спасибо большое, все шикарно! А как правильно записать эту строчку?
C#
1
button1.ForeColor = tmr.Enabled ? 'Color.Green' : 'Color.DarkRed';
0
Даценд
Модератор
Эксперт .NET
3696 / 3567 / 1822
Регистрация: 20.04.2015
Сообщений: 6,544
16.10.2015, 12:10 #4
Цитата Сообщение от lennen Посмотреть сообщение
как правильно записать эту строчку?
так как она и написана, но только без кавычек
0
16.10.2015, 12:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2015, 12:10
Привет! Вот еще темы с ответами:

Как подгрузить картинку в PictureBox при нажатии на кнопку - C#
Доброго времени суток... Появилась проблема... Как можно подгрузить картинку в PictureBox при нажатии на кнопку?

Как отобразить дочернюю форму при нажатии на кнопку - C#
Подскажите пожалуйста Допустим есть Form25 на которой лежит button1 Как сделать так, чтобы при нажатии на button1, открылась...

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

Как ограничить количество открываемых форм при нажатии на кнопку - C#
Подскажите как ограничить количество открываемых форм при нажатии на кнопку. При каждом клике открывается новая форма. ...


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

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

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