1

所有者をウィンドウに設定し、それを非ダイアログモードで表示すると、次の2つが得られます。1。子ウィンドウは常に親ウィンドウの上部にあります(親ウィンドウへのアクセスは引き続きあります)。2。親ウィンドウを閉じると、子ウィンドウも閉じられます

ダイアログウィンドウの場合、両方のポイントは意味がありません。1.子ウィンドウは、所有者プロパティで独立して親ウィンドウの上部にあります。2。親ウィンドウを閉じる機会はありません。

だから私は、所有者プロパティをダイアログウィンドウに設定する意味がないのですか、それともいくつかの議論があるのでしょうか?

4

2 に答える 2

2

HBが言ったことに加えて、

ウィンドウを表示する前に、ウィンドウの所有者を設定することが重要です。そうしないと、フォーカスされたウィンドウまたはモーダルウィンドウが他のウィンドウの後ろに隠れている場合に奇妙なバグが発生する可能性があります。このようなバグを防ぐには、Ownerプロパティを現在のウィンドウに設定します。

Mark Seemann、.NETでの依存関係の注入

于 2013-02-19T23:03:19.710 に答える
2

ドキュメントが指摘しているように、理由は次のとおりです。

ShowDialogを呼び出して子ウィンドウを開くときは、子ウィンドウのOwnerプロパティも設定する必要があります。そうしないと、ユーザーはタスクバーボタンを押しても子ウィンドウと親ウィンドウの両方を復元できなくなります。代わりに、タスクバーボタンを押すと、子ウィンドウと親ウィンドウの両方を含むウィンドウのリストが表示され、選択できるようになります。選択したウィンドウのみが復元されます。

また、ShowDialogを呼び出して開いたウィンドウにOwnerプロパティを設定して、UIオートメーションでの正しい動作を確認する必要があります。

于 2013-02-19T18:53:03.877 に答える