C# Контекстное меню. Ожидание

cLif

Well-known member
27.09.2010
50
4
#1
Есть функция, генерирующая контекстное меню по набору входных параметров. На выходе функция должна вернуть некоторый идентификатор сделанного выбора.
Для пункта меню переопределено событие OnClick(), ставящее в некую глоб. переменную значение идентификатора.

Проблема: после вызова .Show() функция идет далее не ожидая завершения выбора, соотв. глоб. переменная не имеет значение. Как дождаться завершения выбора и пойти дальше?
 

LuMee

Well-known member
02.05.2006
477
0
#2
Если грубо и в лоб, то можно примерно так: перед вызовом Show запустить некий поток, с которым после Show сделать Join. Рабочий метод потока в цикле проверяет значение некоторого флага, который сбрасывается в обработчике события OnClick (т.е. сразу после клика поток завершается).
 

cLif

Well-known member
27.09.2010
50
4
#3
Спасибо за совет) получилось реализовать через API
 
C

CSerX

#4
Что за извращения с циклами. Все очень просто вызываем ShowDialog(this), параметр this текущей формы желательно передавать, что бы корректно отрабатывалось переключение между окнами.
В итоге после того как закроется открывшаяся форма поток вызвавший ShowDialog продолжит выполнятся.