Как сделать немодальный верхний диалог, который является самым верхним по отношению к родительской форме в WinForms? - PullRequest
3 голосов
/ 23 марта 2009

Думая об этом для диалога О, но я уверен, что он применим в других местах (скажем, поле поиска)

Извините, если это обман, но я не мог найти это или как сформулировать последнюю часть о том, что это только над родителем. Как создать форму, которая всегда находится над родительской формой, но не является модальной, но не покрывает другие приложения?

Ответы [ 2 ]

9 голосов
/ 24 марта 2009

Попробуйте открыть диалог:

FindDialog fd = new FindDialog();
fd.Show(this);

Ключ - назначить владельца диалога.

0 голосов
/ 24 марта 2009

Не уверен, что именно вы имеете в виду; Form.ShowDialog является только модальным по отношению к родителю, а не к приложению, если только приложение не является однопоточным.

Например, я сделал приложение для тестирования, которое было организовано следующим образом:

MainForm: 2 кнопки, каждая из которых начинает поток, который создает frmDialog1 и вызывает ShowDialog

frmDialog1: одиночная кнопка, которая создает frmDialog2 и вызывает для него ShowDialog.

frmDialog2: ничего не делает (т. е. пусто)

когда они все работали, я мог получить доступ / перетащить основную форму. Я мог бы сделать то же самое с frmDialog1 (обе версии), только если бы я не нажал кнопку, которая показывает диалог 2.

...