2013-08-27 2 views
1

Если я настроил две формы, я могу закрыть ту или иную функцию, используя функцию «.Close()» на дескрипторе формы. Однако это не работает в Mdi Forms. Форма ребенка никогда не теряет фокуса, нажимая на любого другого ребенка или родителя, так как формы - это все дети родителя. Пока у родителя есть фокус, тогда у детей также есть фокус.В VB.NET LostFocus не работает над моим дочерним контейнером MDI

Есть ли способ определить, потеряла ли дочерняя форма фокус, и если это так близко?

Я использую это для моих регулярных (не МДИ) форм и он прекрасно работает:

AddHandler sub_menu.LostFocus, AddressOf close_menu 

Спасибо.

+0

Вы пробовали обработчик события 'Leave'? – davidsbro

+0

Да, я пробовал это; нет радости. – user2721815

ответ

0

Когда форма получает фокус, закройте все дочерние формы MDI, которые не являются ActiveMDIChild родительской формы.

+0

Я не хочу этого делать. Мне нужно, чтобы некоторые из них оставались открытыми. Поэтому мне просто нужно закрыть целевую форму (по имени или дескриптору или что-то еще). – user2721815

+0

Вы можете отслеживать, какая форма является активной формой MDI. Когда это изменится, закройте ту, которая была ранее активной формой MDI. – xpda

Смежные вопросы