フォームを開くたびにモーダルで表示したい。作成方法と開く方法を変更することはできません。フォームクラス内からフォームを最上位に保つことができるかどうか疑問に思いました。
1 つの機会はTopMost
プロパティです。これは一般的には機能しますが、メインスレッドが閉じるのを待っている間にフォームを表示すると、アプリケーションを変更しても (たとえばブラウザーに) フォームが一番上に表示されたままになります。そのため、どこにいてもフォームは表示されたままです。
私が遭遇したもう1つの問題は、場合によっては親フォームによって採用され、他のウィンドウやポップアップメッセージをブロックする可能性があることです.
フォーカスが失われたら、イベントへのフックを使用しOnLostFocus
て再びトップに立つことを考えていましたが、それが良いアイデアかどうかはわかりません...
それについて何か役立つ考えはありますか?
編集
コメントのため、説明を拡張します。これが実際のユースケースです
SplashScreenManager
特定のフォームを として表示できるDevexpress を使用していWaitForm
ます。WaitForm
はモーダルで表示することを意図していないため (サポートセンターを参照)、そのようにする方法を探しています。
フォームの表示方法を変更することはできません。これはSplashScreenManager
. はWaitForm
、メイン スレッドと特定のバックグラウンド ワーカーの両方から表示されます。
したがって、これは私たち自身の独自の形式に関するものであり、それを私たち自身のアプリケーション内に表示しています。