5

TopMost に設定された親フォームがあり、ボタンをクリックすると開く別のフォームがあります。この子フォームも TopMost に設定されています。私が抱えていた最初の問題は、子フォームを開いたときに、何もアクセスできなかったため、アプリケーションが基本的にフリーズすることでした。ShowDialog() を使用して子フォームを開く代わりに、Show(this) を使用することにしました。これで最初の問題は解決しましたが、今は新しい問題があります。childforms の開始位置は CenterParent に設定されており、Show(this) を使用すると機能しません。子フォームの開始位置を CenterParent に設定しながら、子フォームと親フォームの両方を最上位に設定しながら子フォームを開く方法はありますか? ありがとうございました。

4

3 に答える 3

5

皆さんと共有するのに役立つものを見つけました。代わりに次のコード

form2.TopMost = true;

次のコードをメイン フォームで使用します。

form2.Owner = this;

Form.TopMost プロパティを使用すると、フォームは他のすべての非最上位フォームだけでなく、他のアプリケーションのフォームとも重なります。この代わりに、Form.Owner プロパティを親フォーム (フォームの下にある必要があるフォーム (メイン フォームなど)) に設定します。G00d運:)

于 2013-04-28T15:10:54.240 に答える
3

子フォームが表示されている間、親フォームの TopMost プロパティをクリアしてみてください。

これにより、フォームが 1 つしかないため、どのフォームを一番上に置くべきかという問題が解決されます。

于 2009-10-26T21:18:43.873 に答える
0

うーん。Toフォームを作成しました。次に、両方で TopMost = true を設定します。最初にボタンを追加して書いた new Form2().ShowDialog();

そして、すべてうまくいきます。Form2 アクティブでクリック可能。Form1 は ShowDialog が呼び出されてからではありません

2番目のバリアントは正常に動作します。画面中央に Form2 が開きました。

私は何かを誤解している可能性がありますか?

于 2009-10-26T21:25:04.767 に答える