2011-11-11 7 views
0

私は2つのTopMostフォームを非常に近くに持っています(フォームAとフォームB)。私はそれが前に来るAをクリックして、私はWndProcメソッドを上書きしようとしたフォームB.上の自体を置く場合:フォームが前面に来るのを防ぐ

protected override void WndProc(ref Message m) 
{ 
    if (m.Msg == 0x0201 || m.Msg == 0x0202 || m.Msg == 0x0203) 
    { 
     return; 
    } 

    base.WndProc(ref m); 
} 

私はそれをクリックした場合にもかかわらず、フォームAはまだので、私はそれをしなければならないと思いフォームBをオーバーレイいくつかの他のメッセージコードです。うまくいけば誰かがそれをする方法を知っています。

+0

フォームAはフォームBの子ですか? MDIの子どもの状況がうまくいくかどうか、Bをモーダルにしたいかどうかは分かりません。 –

+0

いいえ、それは子供のモーダルではありませんこれを行う方法ではありません。 –

+0

だから、常にBの前にBが欲しいが、フォーカスがあるときにAと対話したいのですか? –

答えて

0

あなたはBringToFront/BringToBack関数をActiveFormで利用できます。私はそれらを調べることをお勧めします。私の頭の上から、私はおそらくそれらの1つを無効にし、フォームAをフォーカスしているときに、フォームBを前面に持って来るようにします。

しかし、問題はコードなしで解決できます。