2012-04-11 56 views
2

我創建了一個鏈接到VB.NET中的主窗體的列表窗體。這一切都可以正常工作,除了當主窗體被激活時,我需要列表也被帶到前臺。我已經放入了一個簡單的IF函數來做到這一點,但是當我添加這些代碼行時,主窗體以及列表窗體現在不會被帶到前面,直到您釋放鼠標按鈕。很明顯,這意味着如果拖動表單,它將停留在後面,直到您鬆開鼠標按鈕。當拖動時未拖動窗體

我添加的代碼如下:

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

CRL是列表形式。

如果我再次註釋掉這段代碼,主窗體在拖動時會顯示在前面,但很明顯,列表窗體沒有。主要形式以及列表形式都是MDI兒童。

回答

2

你可以通過最上面的屬性絕招吧:

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

做我想做的事,歡呼! – Weebie 2012-04-11 09:41:49

+0

+1,不客氣 – 2012-04-11 09:54:52

0

把你的代碼,把重點放在子窗體的Form.Activated事件,而不是

+0

這就是它在哪裏。我確實嘗試了許多其他事件,例如MouseDown,LocationChanged等。其中一些事件確實放慢了速度,並使表單閃爍。我確實認爲Form.Activated是最好的方式,但顯然存在帶來前端問題。 – Weebie 2012-04-11 09:04:11