2017-04-22 34 views
0

我有一個包含ListView控件的表單(我們將其稱爲Form A)。當我在ListView中選擇一個項目時,事件處理程序創建並顯示Form B防止ListView將舊形式帶到前面

我想Form B出現在Form A的前面。顯示時,這兩種形式都是最大化的。問題是,在Form B顯示之後,在Form A正在製作Form A。屏幕暫時閃爍,所以Form B最初在前面。我知道這是ListView這樣做,因爲如果我從另一個控件打開Form B,它會按預期工作。

我在顯示Form BShow()。將其更改爲ShowDialog()可以解決問題,但我不希望它成爲模態。

這發生在ListView1.ItemSelectionChanged事件的處理程序中,並且更改爲ListView1.SelectedIndexChanged沒有幫助。

一些代碼,如果它使任何清晰的:

Private Sub ListView1_ItemSelectionChanged(sender As Object, e As ListViewItemSelectionChangedEventArgs) Handles ListView1.ItemSelectionChanged 
    If e.IsSelected Then 
     Dim my_form As New MyForm 
     my_form.Show() 
    End If 
End Sub 
+0

FormB_Load中的Me.Activate有幫助嗎?或嘗試一個不同的事件啓動FormB,如ListView1_Click ... –

+0

@JeremyThompson不,並將其放在'FormB_Shown'的末尾,或在調用Show()後也不會改變它。與Focus()和BringtoFront()一樣。 –

回答

2

設置列表視圖Activation屬性設置爲「一鍵式」,然後辦理ItemActivate事件,並從那裏顯示你的表格。