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