2017-04-22 6 views
0

ListView 컨트롤을 포함하는 양식이 있습니다 (우리는 Form A이라고합니다). ListView에서 항목을 선택하면 이벤트 처리기에서 Form B을 만들고 표시합니다.ListView가 이전 양식을 앞에 가져 오지 못하도록하십시오.

Form A 앞에 Form B이 표시되도록하고 싶습니다. 두 형식 모두 표시 될 때 최대화됩니다. 문제는 Form AListView이 표시되고 Form B이 표시된 후 Form A이 포커스를 바로 잡는 것입니다. 화면이 일시적으로 깜박이므로 처음에는 Form B이 앞에 있습니다. 나는 그것이 다른 장치에서 Form B을 열면 의도 한대로 작동하기 때문에 ListView 일을 알고 있습니다.

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 
+0

FormB_Load에서 Me.Activate가 도움이됩니까? 또는 ListView1_Click ... –

+0

@JeremyThompson No와 같이 FormB를 시작하는 다른 이벤트를 시도하고'FormB_Shown'의 끝 부분에 놓거나'Show()'호출 후에도 바뀌지 않습니다. 'Focus()'와'BringtoFront() '와 동일합니다. –

답변

2

의 ListView에 "원 클릭"Activation 재산권, 다음 ItemActivate 이벤트를 처리하고 거기에서 양식을 표시를 설정합니다.