2012-04-11 8 views
2

Ich habe ein Listenformular erstellt, das an ein Hauptformular in VB.NET angehängt wird. Das alles funktioniert gut, außer dass wenn das Hauptformular aktiviert wird, ich die Liste auch nach vorne bringen muss. Ich habe eine einfache IF-Funktion eingefügt, um dies zu tun, aber wenn ich diese Codezeilen hinzufüge, werden das Hauptformular und das Listenformular jetzt nicht nach vorne gebracht, bis Sie die Maustaste loslassen. Dies bedeutet natürlich, dass wenn Sie das Formular ziehen, es auf der Rückseite bleibt, bis Sie die Maustaste loslassen.Formular beim Ziehen nicht nach vorne gebracht

Der Code, den ich unter hinzugefügt:

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

CRL ist die Listenform.

Wenn ich diesen Code erneut auskommentiere, wird die Hauptform beim Ziehen nach vorne gebracht, aber offensichtlich nicht die Listenform. Das Hauptformular sowie das Listenformular sind MDI-Kinder.

Antwort

2

Sie Trick durch oberste Eigenschaft zu konzentrieren:

If CRL.Visible = True Then 
    CRL.BringToFront() 
    CRL.TopMost = True 
    Application.DoEvents 
    CRL.TopMost = False 
End If 
+0

Tut was ich will, Prost! – Weebie

+0

+1, Gern geschehen –

0

Setzen Sie Ihren Code, um das Kind Form im Form.Activated Ereignis statt

+0

Das ist, wo es ist. Ich habe viele andere Ereignisse wie MouseDown, LocationChanged usw. versucht. Einige davon verlangsamten es wirklich und ließen die Formulare flackern. Ich denke Form.Activated ist der beste Weg zu gehen, aber es gibt offensichtlich die Bring-to-Front-Problem. – Weebie