6 / 6 / 1
Регистрация: 20.02.2015
Сообщений: 114
|
|
1 | |
Как остановить работу программы, как при ShowDialog(), только без дополнительных форм07.07.2015, 16:25. Показов 2667. Ответов 11
Метки нет Все метки)
(
Программа перебирая текстовые файлы ищет нужную инфу автоматически, но встречаются неоднозначности и требуется ручное вмешательство. Нужно приостановить работу программы, поправить что нужно, и возобновить по нажатию кнопки. Можно было бы сделать еще одну форму, ShowDialog() и тд.. но во время остановки все равно нужно работать с основной формой. По этому хочется чтоб без всяких дополнительных штук. Спасибо.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
07.07.2015, 16:25 | |
Ответы с готовыми решениями:
11
Как остановить работу программы при нажатии на кнопку? Как обойти ограничение размера программы или объема данных без создания дополнительных файлов программы. Как установить только драйвера без дополнительных программ на МФУ?
|
0 / 0 / 0
Регистрация: 07.07.2015
Сообщений: 11
|
|
07.07.2015, 17:29 | 3 |
Тормози цикл, исправляй что-то руками, возобновляй цикл. Либо формируй по новой список после "ручного исправления"
0
|
6 / 6 / 1
Регистрация: 20.02.2015
Сообщений: 114
|
|
07.07.2015, 18:37 [ТС] | 4 |
в каждом абзаце текста есть восьмизначное число и описание. но бывает что встречается 2 числа - тогда ручками нужно выбрать нужное и далее продолжить выполнение программы по нажатию кнопки. Например можно было бы сделать так. Когда встречается абзац с двумя числами, вызывается диалоговое окно с нужным абзацем и ТекстБоксом, куда я помещаю верное число и по нажатию кнопки ОК продолжается выполнение программы. Вот. Как бы сделать подобное без диалоговых окон.
0
|
6 / 6 / 1
Регистрация: 20.02.2015
Сообщений: 114
|
|
07.07.2015, 22:29 [ТС] | 6 |
Да. Можно. Но идея именно в том чтоб не было ни каких месседжов. Просто в них нет ни какого смысла. Они будут только мешать видеть инфу на форме. Файлы бухгалтерские, и делать все это будет бухгалтер который раньше распечатывал и делал все это вручную. Ему просто необходимо видеть весь файл, который будет отображаться в richTextBox. Рядом будет еще TextBox с кучей доп. инфы. и ListView с инфой по файлам которые каждый день приходят. и еще может чего захочется. Короче все месседжи будут только мешать смотреть на главную форму. В RichTextBox`e будет отображаться весь текст и при надобности другим цветом выделяться нужный фрагмент для наглядности. Потом по нажатию кнопки, после выбора числа, идем дальше. Все. Как сделать такое без всяких MessageBox? Как заставить программу ожидать нажатия кнопки "Далее" при обнаружении 2-х чисел в одном абзаце?
0
|
0 / 0 / 0
Регистрация: 07.07.2015
Сообщений: 11
|
|
07.07.2015, 22:33 | 7 |
При нажатии ставишь булевское значение, а в списке проверяешь на это значение, ну и нужно еще где то инвертировать значение
0
|
6 / 6 / 1
Регистрация: 20.02.2015
Сообщений: 114
|
|
08.07.2015, 08:36 [ТС] | 9 |
Ничего не понял. Булевское значение чего? Кнопка должна вернуть? Какой список?
Возможно, гугл посылал на формумы на нечто похожее, только там ни кому не чего не помогло, вешают свои программы наглухо. Rius, киньте, пжалуйста, ссыль где можно почитать. А вообще интересно как MessageBox тормозит программу. Тоже через поток?
0
|
![]() |
|
08.07.2015, 08:48 | 10 |
Работа с потоками в C# - часть 1
Работа с потоками в C# - часть 2 Не забывайте, что нельзя из потока напрямую обращаться к любым контролам в UI, так как они не потокобезопасны. Как модальные окна устроены внутри, не изучал. Вроде бы они блокируют основную очередь сообщений окна, из которого вызваны.
1
|
6 / 6 / 4
Регистрация: 02.05.2012
Сообщений: 40
|
||||||
08.07.2015, 09:39 | 11 | |||||
как то вы сами все запутали)) MessageBox.Show("") - это обычная синхронная ф-ция. Синхронная - это означает что процесс не двинется дальше, пока эта ф-ция не завершится. А вот если же у вас задача остановить поток, то это можно сделать так:
1
|
![]() |
|
08.07.2015, 10:41 | 12 |
Чистый лист, когда сделаете в потоке, алгоритм будет такой:
крутится цикл в потоке; потребовалось вмешательство; сбрасывается AutoResetEvent и начинатся ожидание его установки; через SyncronizationContext окну в потоке UI сообщается, что надо показать контролы редактирования; контролы показываются; юзер что-то там правит и нажимает кнопку "продолжить"; по этой кнопке контролы скрываются и запускается сигнал в AutoResetEvent; поток возобновляется.
1
|
08.07.2015, 10:41 | |
Помогаю со студенческими работами здесь
12
Как остановить работу макроса при невыполнении определённых условий? FastColoredTextBox без дополнительных форм Как остановить поток при закрытии программы Как получить(передать) в работу только форму без кода? Как сделать так, чтобы при выборе combobox открывался новый form без дополнительных кнопок (button)? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |