Значок уведомления моего приложения показывает и соответственно скрывает главное окно приложения.Однако, когда открывается модальное диалоговое окно (это может быть диалоговое окно «О программе» или «Настройки», если назвать несколько), я хочу, чтобы модальное диалоговое окно получило фокус, вместо того, чтобы показывать / скрывать главное окно приложения.
модальные диалоги открываются с form.ShowDialog(this)
.Допустим, я открываю окно About с этим кодом, а затем, не закрывая его, перехожу в другое приложение.Когда я вернусь, если я нажму значок уведомления, я хочу, чтобы мое приложение было сфокусировано.Еще лучше, я хочу, чтобы модальное диалоговое окно получило фокусировку, так как оно модальное, я все равно не могу использовать родительскую форму.
Я отслеживаю с простой переменной bool
, если какая-либо форма (О, Настройки, и т. Д.)), и когда я щелкаю значок уведомления, я проверяю эту переменную.Если это правда, я делаю что-то вроде mainForm.Activate()
.Это фактически выводит основную форму и модальное диалоговое окно на передний план, единственная проблема состоит в том, что он не фокусирует модальное диалоговое окно.
Как я могу решить эту проблему, не отслеживая, какой модальный диалог открыт ипозвонить .Activate()
по этому поводу?Потому что это будет боль ...