4 / 4 / 0
Регистрация: 24.02.2016
Сообщений: 229
|
|
1 | |
Окно со статусбаром и кнопкой "Отмена". Как отследить событие нажатия кнопки?15.12.2018, 21:08. Показов 1465. Ответов 19
Метки нет (Все метки)
Доброго времени суток, коллеги!
Ситуация следующая. Из MainForm запускаю отображение второй формы (ProgressForm) На второй форме есть ProgressBar1 и Button1. т.е. вторая форма является неким всплывающим окном, отображающем статусбар. Дальнейшая работа программы продолжается в процедуре, находящейся в другом модуле. Соответственно я не могу "отловить" событие нажатия на кнопку 1 на форме со статусбаром (предполагается кнопка "Отмена") Подскажите, как можно отследить события на второй форме для отработки процедуры отмены?
0
|
15.12.2018, 21:08 | |
Ответы с готовыми решениями:
19
Отследить событие нажатия кнопки в другом потоке Отследить событие нажатия кнопки и вывести данные в консоль Как отследить событие нажатия на одной из строк в ToolBar? Как отследить событие нажатия поля checked на datetimepicker? Как отследить событие нажатия каждого элемента ListView по отдельности |
15.12.2018, 21:57 | 2 | ||||||||||
Родительская форма:
0
|
4 / 4 / 0
Регистрация: 24.02.2016
Сообщений: 229
|
|
16.12.2018, 08:10 [ТС] | 3 |
bbbw, не работает у меня такая связка.
0
|
4 / 4 / 0
Регистрация: 24.02.2016
Сообщений: 229
|
|||||||||||||||||||||
16.12.2018, 16:26 [ТС] | 5 | ||||||||||||||||||||
bbbw,
Модуль основной, родительской формы. Процедура вызова отображения ПрогрессБара и процедура изменения отображаемой информации к окне прогрессбара находятся тут: Кликните здесь для просмотра всего текста
Модуль подпрограмм. В нем располагаются процедуры показа окна ПрогрессБара и процедура смены информации. Кликните здесь для просмотра всего текста
Непосредственно модуль ПрогрессБара в котором размещена процедура обработки нажатия кнопки. Кликните здесь для просмотра всего текста
Процедуру CancalButton() где мне необходимо поместить? В модуле ModuleSubProgramm? Кликните здесь для просмотра всего текста
0
|
16.12.2018, 17:19 | 6 | ||||||||||||||||||||
Allleksey,
В модуле FormMain Только не так как вы написали а Public Sub ! А вызывать так:
Объявите переменную:
0
|
4 / 4 / 0
Регистрация: 24.02.2016
Сообщений: 229
|
|||||||||||
16.12.2018, 17:49 [ТС] | 7 | ||||||||||
bbbw, что характерно, не работает.
Модуль с ПрогрессБаром
Добавлено через 4 минуты Когда открывается форма FormProgress... в меню задач Windows отображается и основная программа и форма ПрогрессБара. Но вот перевести фокус на основную форму я не могу. Форма с прогрессБаром находится сверху и фокус не переводится на основную форму.
0
|
4 / 4 / 0
Регистрация: 24.02.2016
Сообщений: 229
|
||||||
16.12.2018, 19:50 [ТС] | 9 | |||||
Не совсем понял...
0
|
4 / 4 / 0
Регистрация: 24.02.2016
Сообщений: 229
|
|
16.12.2018, 20:02 [ТС] | 11 |
Есть еще один нюанс. В процессе всего времени показа FormProgress работает процедура в FormMain. После окончания работы этой процедуры FormProgress закрывается. Т.е. нет момента времени, когда программа бездействует и ждет события в одной из форм.
0
|
4 / 4 / 0
Регистрация: 24.02.2016
Сообщений: 229
|
|||||||||||
16.12.2018, 20:10 [ТС] | 13 | ||||||||||
Добавлено через 3 минуты Текст всей процедуры.
0
|
16.12.2018, 20:22 | 14 | ||||||||||
Сообщение было отмечено Allleksey как решение
Решение
Попробуйте добавить после этой строки
1
|
4 / 4 / 0
Регистрация: 24.02.2016
Сообщений: 229
|
|
16.12.2018, 20:27 [ТС] | 15 |
0
|
4 / 4 / 0
Регистрация: 24.02.2016
Сообщений: 229
|
||||||||||||||||
16.12.2018, 20:54 [ТС] | 17 | |||||||||||||||
Может быть итоговое решение кому то пригодится.
Процедура обработки нажатия кнопки
0
|
Лень — мое второе и
|
|
16.12.2018, 22:14 | 18 |
Allleksey, лучше используйте для этих действий BackgroundWorker.
-выполняет какую-либо операцию асинхронно -поддерживает завершение операции (CancelAsync) -имеет событие завершения работы И не придется городить подобных конструкций с goto
2
|
4 / 4 / 0
Регистрация: 24.02.2016
Сообщений: 229
|
|||||||||||
17.12.2018, 07:55 [ТС] | 19 | ||||||||||
Orlangur1991, мысль интересная, но не сработала. Возможно нужно изменить код (адаптировать под выполнение задачи в фоне).
На форме есть DataGridView1. Процедуру, код которой приводил выше, попытался "загнать" в фоновое выполнение.
System.InvalidOperationException: "Недопустимая операция в нескольких потоках: попытка доступа к элементу управления 'DataGridView1' не из того потока, в котором он был создан."
0
|
Лень — мое второе и
|
||||||
17.12.2018, 10:46 | 20 | |||||
Allleksey, любое обращение к элементам формы в этом случае необходимо делать через Invoke, например
1
|
17.12.2018, 10:46 | |
17.12.2018, 10:46 | |
Помогаю со студенческими работами здесь
20
Как отследить прекращение нажатия кнопки? Как отследить момент нажатия кнопки Как отследить время нажатия кнопки? Как из обработчика Form1_KeyPress вызвать событие для нажатия заданной по имени кнопки на форме (кнопки 0-9) Как программно отследить нажатия на кнопки в Webim, устроенного в CRM? Как обработать событие нажатия кнопки в Canvas Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |