1

私が修正しなければならない大規模な古いアプリケーションでは、画像のように 2 つのフォームがあります (これはメモ帳の例です)。

ここに画像の説明を入力

小さな(Y)フォームの領域を(マウスカーソルで)離れると、そのフォームは「消え」ます。大きなフォームをクリックしてアクティブにしたようなものです。

しかし、私は X をクリックしませんでした。X キャプションもアクティブではありませんが、小さな Y フォームは後方に移動し、もう表示されません。

問題を追跡する方法

ResizeActivatedDeactivate、 、 、 、LostFocusGotFocusGiveFeedback、のいずれMdiChildActivateも、私がその地域を離れると、両方のフォームのいずれにも追跡されませんY...

4

4 に答える 4

1

私が知っているように、これはシステム全体の問題です。アクティブ ウィンドウ トラッキングと呼ばれるものだと思います。

無効にしてみるといいかもしれません。

于 2012-05-24T14:46:48.690 に答える
1

複数のテストを行って、問題を特定しました:Yフォームは、(X) フォーム内の特定のコントロールで Focus() を生成したため、Deactivateによって d されました...XMouseMoveX

みんな助けてくれてありがとう!

(追伸。Deactivate イベントに関する最初の投稿は間違っていました)

于 2012-05-24T15:12:21.753 に答える
1

フォーム Y のOnVisibleChangedをオーバーライドして、これにブレークポイントを設定してみてください。デバッグ中に状況を再現し、プロパティ Form.Visible を false でチェックし、コール スタックよりもチェックします。

于 2012-05-24T14:11:34.033 に答える
0

フォーム「Y」のTopMostプロパティを「True」に設定できます。これにより、「X」の後ろに消えることはありません。(「X」の「最上位」プロパティが真でない場合。

于 2012-05-24T14:25:39.887 に答える