(c) "Pro .NET 2.0 Windows Forms и пользовательские элементы управления" Мэтью Макдональда.
Поскольку ShowDialog показывает новую форму, неявное отношение
установлено между активной в данный момент формой, известной как владелец
форма и новая форма, известная как форма собственности. Это отношения
гарантирует, что форма собственности является активной и всегда отображается на
вершина формы владельца.
Одной из особенностей этих отношений является то, что форма собственности влияет на
поведение формы его владельца (при использовании ShowDialog ):
- Форма владельца не может быть свернута, развернута или даже перемещена.
- Собственная форма блокирует ввод мыши и клавиатуры в форму владельца.
- Форма владельца свернута, если она принадлежит.
- Только закрытая форма может быть закрыта.
- Если формы владельца и владельца свернуты, и если пользователь нажимает Alt + Tab, чтобы переключиться на собственную форму, активная форма активируется.
Однако, в отличие от метода ShowDialog, вызов метода Show делает
не устанавливать скрытые отношения собственника . Это означает, что
любая форма может быть текущей активной формой.
Без неявных отношений с владельцем, владельцем и формами собственности
одинаково может быть свернуто, развернуто или перемещено. Если пользователь закрывает любой
форма, отличная от основной формы, последняя активная форма
возобновлена.
Хотя ShowDialog устанавливает неявные отношения владельца с владельцем ,
нет встроенного способа, которым принадлежащая форма могла бы перезвонить или запросить
форма, которая открыла его. В немодальном случае вы можете установить новый
Форма собственности владельца для установления отношений с владельцем. Как
ярлык, вы можете передать форму владельца в качестве аргумента для перегрузки
метода Show, который также принимает параметр IWin32Window
(IWin32Window реализуется объектами пользовательского интерфейса Windows Forms, которые
Свойство Win32 HWND через свойство IWin32Window.Handle).
Поведение форм в явной модальной собственности владельца
отношение такое же, как его неявный модальный аналог, но
немодальные отношения собственника обеспечивают дополнительное поведение в
не принадлежащий владельцу немодальный кейс. Во-первых, немодальная форма собственности всегда
появляется в верхней части формы владельца, хотя любой из них может быть активным.
Это полезно, когда вам нужно сохранить форму, например плавающий инструмент
окно, поверх других форм в приложении. Во-вторых, если
пользователь нажимает Alt + Tab, чтобы перейти от владельца, принадлежащие формы следуют
подходить. Чтобы убедиться, что пользователь знает, какая форма является основной,
сворачивание владельца скрывает кнопки панели задач для всех принадлежащих форм,
оставляя видимой только кнопку панели задач владельца.
(c) «Программирование Windows Forms 2.0» Криса Селлса, Майкла Вайнхардта.