Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
32 / 31 / 12
Регистрация: 11.06.2016
Сообщений: 240
Записей в блоге: 11

Как обновить контрол во время выполнения кода

17.06.2016, 11:59. Показов 6003. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Установил на форму ProgressBar (перед этим было текстовое поле) - результат одинаковый.
ProgressBar.Value=10;
функция 1;
ProgressBar.Value=20;
функция 2;
и т.д.
ProgressBar не обновляется. А вот если впихнуть в середину Messagebox.Sow(...) - то ProgressBar обновится с новым значением.
Тоже пробывал и с TextBox.Text.
Подскажите, друзья.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.06.2016, 11:59
Ответы с готовыми решениями:

Засечь время выполнения (в ms) определённого кода или части кода
Доброго времени суток всем. Хотелось бы поинтересоваться у знающих людей. Как можно засеч время выполнения(в ms) определённого кода...

Время выполнения куска кода
В общем нужно реализовать точный подсчет времени выполнения отдельных кусков кода программы. Как можно такое реализовать? Заранее...

Как обновить контрол Form1 при закрытии диалогового окна Form2?
На Form1 есть dataGridView, вызывается Форм2 шоуДайлогом(), через которую добавляется информация в базу. И вот, при закрытии диалоговой...

30
Эксперт .NET
 Аватар для Rius
13288 / 7747 / 1683
Регистрация: 25.05.2015
Сообщений: 23,600
Записей в блоге: 14
19.06.2016, 17:55
Студворк — интернет-сервис помощи студентам
Другой - заставить форму затуманиться/размыться, но не зависнуть. Это сложнее делается.
0
Эксперт .NET
 Аватар для Usaga
14333 / 9426 / 1357
Регистрация: 21.01.2016
Сообщений: 35,524
19.06.2016, 17:59
Цитата Сообщение от Doctor_y Посмотреть сообщение
Вставил между ними Messagebox, контрол обновился
Это потому, что новый MessageBox вызывает обработку накопившихся событий. Чтобы повторить это вручную можно вызвать Application.DoEvents(). Но это грязный трюк.

Цитата Сообщение от Doctor_y Посмотреть сообщение
есть ли еще варианты, чтобы сообщить пользователю - подожди, мол, дружище
Да, есть. Запустить задачу в фоне (выше уже сказано как) и периодически обновлять прогресс.
0
32 / 31 / 12
Регистрация: 11.06.2016
Сообщений: 240
Записей в блоге: 11
20.06.2016, 05:56  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Application.DoEvents(). Но это грязный трюк.
Цитата Сообщение от Doctor_y Посмотреть сообщение
Поставил Application.DoEvents(), не прокатило.
Цитата Сообщение от Usaga Посмотреть сообщение
Да, есть. Запустить задачу в фоне (выше уже сказано как) и периодически обновлять прогресс.
Каждая задача выполняется не более 10 секунд. Можно в фоне запустить задачу и в 1 секунду, только кому это надо.
Цитата Сообщение от Rius Посмотреть сообщение
заставить форму затуманиться/размыться, но не зависнуть. Это сложнее делается.
Это для "детей". "Разукрашивать" программу можно до бесконечности. Мне за 25 лет ни разу такое не понадобилось, но каждому свое кто то картинки рисует, а кто то данными управляет.
0
Эксперт .NET
 Аватар для Rius
13288 / 7747 / 1683
Регистрация: 25.05.2015
Сообщений: 23,600
Записей в блоге: 14
20.06.2016, 06:06
Цитата Сообщение от Doctor_y Посмотреть сообщение
Это для "детей".
Дети такое не осилят. Дети запускают длительные вычисления по Button_Click и вешают приложение загрузкой одного ядра в 100%, затем подпирая костылями типа ProcessMessages(), DoEvents(), Refresh().
0
Эксперт .NET
 Аватар для Usaga
14333 / 9426 / 1357
Регистрация: 21.01.2016
Сообщений: 35,524
20.06.2016, 06:49
Цитата Сообщение от Doctor_y Посмотреть сообщение
Можно в фоне запустить задачу и в 1 секунду, только кому это надо.
В каком смысле "кому это надо"? Как минимум тебе, раз ты тему эту создал.

Цитата Сообщение от Rius Посмотреть сообщение
Дети запускают длительные вычисления по Button_Click и вешают приложение загрузкой одного ядра в 100%, затем подпирая костылями типа ProcessMessages(), DoEvents(), Refresh().


Doctor_y, я честно не могу понять, почему эта тема разрослась на две страницы В чём проблема запустить задачу во втором потоке? Строчку кода лишнюю добавить неохото? Или код без костылей выглядит слишком скучным?)
0
20.06.2016, 06:50

Не по теме:

Проблема стара как мир: "я не хочу учить ничего нового, потому что предыдущие 100500 лет всё и так прекрасно работало"...

0
32 / 31 / 12
Регистрация: 11.06.2016
Сообщений: 240
Записей в блоге: 11
20.06.2016, 06:59  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
В чём проблема запустить задачу во втором потоке?
Да никаких проблем, уже запустил сообщения в другом потоке. Просто был вопрос "можно ли перерисовывать контрол "насильно" в текущем потоке. Если бы ответ был в С# этого нельзя. На этом все и закончилось бы.
0
Эксперт .NET
 Аватар для Rius
13288 / 7747 / 1683
Регистрация: 25.05.2015
Сообщений: 23,600
Записей в блоге: 14
20.06.2016, 07:03
Ответ - в C# это можно. Но это говнокод. И алгоритм, которому это потребовалось, является примером говнокода. Потому что оконная система устроена иначе.

Покажите, что вы с потоками написали.
0
32 / 31 / 12
Регистрация: 11.06.2016
Сообщений: 240
Записей в блоге: 11
20.06.2016, 07:14  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Ответ - в C# это можно
Как?
Цитата Сообщение от Rius Посмотреть сообщение
Но это говнокод.
Можешь называть это как тебе нравится, только не надо свое решение принимать за истину, это всего лишь мнение конкретного человека, пусть и заслуженного и авторитетного (опять же у определенной группы людей).
0
Эксперт .NET
 Аватар для Rius
13288 / 7747 / 1683
Регистрация: 25.05.2015
Сообщений: 23,600
Записей в блоге: 14
20.06.2016, 07:22
Это не моё решение, есть общеизвестные признаки. Нравится вам это или нет, неважно.
Как без потоков? Юным неокрепшим умам это повредит. Так что обойдёмся без демонстраций. Учитесь делать правильно.
Эти методы содержат неопределённое поведение, неочевидное для тех, кто хочет их применять в тяп-ляп-продакшене.

Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте
0
32 / 31 / 12
Регистрация: 11.06.2016
Сообщений: 240
Записей в блоге: 11
20.06.2016, 07:34  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Так что обойдёмся без демонстраций.
. Да, будем обходиться демагогией. Спасибо за помощь. У меня нет вопросов по этой теме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2016, 07:34
Помогаю со студенческими работами здесь

Gif анимация во время выполнения кода
Хочу, чтобы во время выполнения кода метода авторизации крутилась гифка. Как я понял, для этого нужно вынести выполняемый код в отдельный...

Почему время выполнения unsafe и обычного кода примерно одинаково
Почему-то скорость выполнения сложных операций в с матрицами, элементы которых лежать в одномерном массиве получилась одинаковой для Unsafe...

Как сделать контрол внешне недоступным, но в то же время рабочим?
Мне нужно, чтобы контрол выглядел так, как будто у него свойство Enabled = false, но чтобы он в то же время работал.

Как удалить контрол с формы , если он создается во время выполнения программы
Здравствуйте . Вопрос в следующем. Допустим в течении работы программы пользователь щелкает на кнопке и создается GroupBox, причем...

Как обновить данные в JTable во время выполнения программы?
Господа, Я вывожу данные в таблицу T1(JTable), cvet2 -это новый символ, который я ввожу в таблицу. Мне нужно что бы на каждой итерации...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru