0
我有一個包含ListView
控件的表單(我們將其稱爲Form A
)。當我在ListView
中選擇一個項目時,事件處理程序創建並顯示Form B
。防止ListView將舊形式帶到前面
我想Form B
出現在Form A
的前面。顯示時,這兩種形式都是最大化的。問題是,在Form B
顯示之後,在Form A
正在製作Form A
。屏幕暫時閃爍,所以Form B
最初在前面。我知道這是ListView
這樣做,因爲如果我從另一個控件打開Form B
,它會按預期工作。
我在顯示Form B
與Show()
。將其更改爲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
FormB_Load中的Me.Activate有幫助嗎?或嘗試一個不同的事件啓動FormB,如ListView1_Click ... –
@JeremyThompson不,並將其放在'FormB_Shown'的末尾,或在調用Show()後也不會改變它。與Focus()和BringtoFront()一樣。 –