2012-04-11 15 views
2

VB.NETでメインフォームに添付されるリストフォームを作成しました。これは、メインフォームがアクティブになったときにリストが前面に表示される必要があることを除いて、すべて正常に動作します。私はこれを行うために単純なIF関数を入れましたが、これらのコード行を追加すると、メインフォームとリストフォームは、マウスボタンを離すまで前面に表示されません。明らかに、これは、フォームをドラッグすると、マウスボタンを離すまで、それが後ろにとどまることを意味します。ドラッグしたときにフォームが前面に表示されない

Iが追加されたコードは、以下である:

If CRL.Visible = True Then 
    CRL.BringToFront() 
End If 

CRLは、リスト形式です。

このコードをもう一度コメントアウトすると、メインフォームがドラッグ中に前面に表示されますが、リストフォームには表示されません。メインフォームとリストフォームは、MDIの子です。

答えて

2

あなたは最上位のプロパティでそれをだますForm.Activatedイベントで子フォームを集中するようにコードを入れてください:

それがどこにあるかである
If CRL.Visible = True Then 
    CRL.BringToFront() 
    CRL.TopMost = True 
    Application.DoEvents 
    CRL.TopMost = False 
End If 
+0

私はそれが欲しいものをやりますか? – Weebie

+0

+1、あなたは大歓迎です –

0

ではなく

+0

。私はMouseDown、LocationChangedなどの他の多くのイベントを試してみました。これらのうちのいくつかは本当にそれを遅くし、フォームをちらつきました。私はForm.Activatedが最善の方法だと思っていますが、明らかにbring-to-front問題があります。 – Weebie

関連する問題