C#-2に対処する方法“ TopMost”フォーム?
-
06-07-2019 - |
質問
TopMostに設定されている親フォームがあり、ボタンをクリックすると開く別のフォームがあります。この子フォームもTopMostに設定されます。私が抱えていた最初の問題は、子フォームを開いたときに、何にもアクセスできなかったため、アプリケーションが基本的にフリーズすることでした。 ShowDialog()を使用して子フォームを開く代わりに、Show(this)を使用することにしました。これで最初の問題は解決しましたが、新しい問題があります。 childforms開始位置はCenterParentに設定されており、Show(this)を使用すると機能しません。子フォームの開始位置をCenterParentに設定しながら、子フォームと親フォームの両方を最上位に設定して、子フォームを開く方法はありますか?ありがとう。
解決
子フォームが表示されている間、親フォームのTopMostプロパティをクリアしてみてください。
これにより、フォームが一番上にあるという問題が解決されます。
他のヒント
皆さんと共有するのに役立つものを見つけました。代わりに次のコード
form2.TopMost = true;
メインフォームでこのコードを使用:
form2.Owner = this;
Form.TopMostプロパティを使用すると、フォームは他のすべての最上位以外のフォームだけでなく、他のアプリケーションのフォームとも重なります。これの代わりに、Form.Ownerプロパティを親フォーム–に設定します。フォームの下にある必要があるもの(メインフォームなど)。 G00d運:)
うーん。 Toフォームを作成しました。次に、両方でTopMost = trueを設定します。最初にボタンを追加して書いた
新しいForm2()。ShowDialog();
これで問題ありません。 Form2がアクティブでクリック可能。 Form1はShowDialogが呼び出されてから
2番目のバリアントは正常に動作します。 Form2が画面の中央に開きました。
何かを誤解した可能性がありますか?