С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
 Аватар для ut7du
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 161
Записей в блоге: 1

Вывод текста в Label из потока

24.06.2016, 09:20. Показов 3638. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет друзья !
Обращаюсь за помощью.
Есть Windows form. На ней есть 2 компонента.
Label и RichTextBox

В Label хочу выводить цикл от 1 до 20000 обнуляя и затем снова
В сети есть много примеров потоков с выводом на консоль.
Мне пока нужно сделать вот это. Если вас не затруднит объясните как это сделать
Очень благодарен всем кто откликнулся
С ув. Владимир
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.06.2016, 09:20
Ответы с готовыми решениями:

Вывод текста в Label
Всем привет) Буду очень признательна за помощь как сделать так,чтобы при открытие формы , текст в Label появлялся построчно через...

Вывод текста в Label
Помогите доделать код, необходимо чтобы в label поместилось слово супер + след строчка. Как сделать что бы во все label помещались разные...

Вывод текста в Label
Считываю с файла в массив все строки. Потом для каждой строки создаю отдельный Label и записываю строку в него. Строка считываемая с...

6
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 5
24.06.2016, 10:26
Можно воспользоваться BackgroundWorker-ом. Не забудьте установить значение свойства WorkerReportsProgress в true.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        private void button1_Click(object sender, EventArgs e)
        {
            backgroundWorker1.RunWorkerAsync();
        }
 
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            run();
        }
 
        void run()
        {
            for (int i = 0; i <= 20000; i++)
            {
                Thread.Sleep(5);
                backgroundWorker1.ReportProgress(i); //Создаем событие ProgressChanged
            }
        }
 
        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            label1.Text = e.ProgressPercentage.ToString();
        }
0
 Аватар для ut7du
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 161
Записей в блоге: 1
24.06.2016, 10:47  [ТС]
Спасибо за код. Но нет вывода в label1.
значение свойства WorkerReportsProgress в true.
0
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 5
24.06.2016, 11:22
Покажите, что у вас написано.
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
24.06.2016, 11:46
ut7du,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
BackgroundWorker bw;
private void Form1_Load(object sender, EventArgs e)
{
    bw = new BackgroundWorker();
    bw.DoWork += bw_DoWork;
    bw.ProgressChanged += bw_ProgressChanged;
    bw.WorkerReportsProgress = true;
    bw.WorkerSupportsCancellation = true;
}
 
private void button1_Click(object sender, EventArgs e) //кнопка старт/стоп
{
    if (!bw.IsBusy)
        bw.RunWorkerAsync(); //если не включен - включаем
    else
        bw.CancelAsync(); //иначе - выключаем
}
 
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
    run();
}
 
void run()
{
    for (int i = 0; ; i++)
    {
        Thread.Sleep(5);
        bw.ReportProgress(i); 
        if (i == 2000) i = 0; //до 2000 и обнуляем
        if (bw.CancellationPending) break; //остановка по кнопке
    }
}
 
private void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
    label1.Text = e.ProgressPercentage.ToString();
}
Добавлено через 6 минут
То же самое с таймером:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Timer tmr;
int counter = 0;
private void Form1_Load(object sender, EventArgs e)
{
    tmr = new Timer();
    tmr.Interval = 5;
    tmr.Tick += tmr_Tick;
}
private void button1_Click(object sender, EventArgs e)
{
    if (!tmr.Enabled)
        tmr.Start();
    else
        tmr.Stop();
}
void tmr_Tick(object sender, EventArgs e)
{
    label1.Text = (counter++).ToString();
    if (counter > 2000) counter = 0;
}
0
 Аватар для jahtemg
19 / 21 / 12
Регистрация: 24.06.2016
Сообщений: 71
24.06.2016, 15:12
Как по мне, лучше так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 private void MyWorker()
        {
            StringBuilder builder = new StringBuilder();
            for(int i = 0; i < 20000;i++)
            {
                builder.AppendLine(i.ToString());
            }
 
            if (label1.InvokeRequired)
            {
                MessageBox.Show("invoke is required");
                label1.Invoke((MethodInvoker)(() =>
                {
                    label1.Text = builder.ToString();
                }));
            }
            else
            {
                MessageBox.Show("invoke is not required");
                label1.Text = builder.ToString();
            }
        }
 
        private void button1_Click_1(object sender, EventArgs e)
        {
            Task task = Task.Factory.StartNew(MyWorker);
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            MyWorker();
        }
0
 Аватар для ut7du
0 / 0 / 0
Регистрация: 24.06.2016
Сообщений: 161
Записей в блоге: 1
28.06.2016, 21:54  [ТС]
Спасибо друзья. Все работает ! Удачи всем !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.06.2016, 21:54
Помогаю со студенческими работами здесь

Вывод текста в Label
Есть такая проблема, при компилировании программы текст отображается в label только после того, как я на него нажму. Как исправить, что бы...

Вывод текста из блокнота в label
Всем здрасте !! Подскажите как вывести текст из блокнота в label при нажатии на кнопку? Я лишь знаю как открыть сам блокнот при...

Вывод текста из БД в Label и RadioButton
Добрый вечер!!! Гляньте на убогую реализацию подобия вывода тестов и ткните меня носом, что я делаю не так? Вот вылетающая...

Многострочный вывод текста в Label
Надо в один label заполнить в две или более строки программно

Вывод текста из textbox в label
Столкнулся с такой проблемой. Есть textbox, в который вводится слово и при нажатии кнопки должно выводиться в label. Dim a As String ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru