2012-09-26 4 views
2

나는 MDI 부모 인 주 양식을 가지고 있습니다.어린이 양식의 가까운 어린이

Dim f As New mynevproj.frm_list 
With f 
    .MdiParent = Me 
    .Show() 
End With 

하는 새로운 형태의 (frm_list)에서 나는 몇 가지 경우에 또 다른 새로운 형태의 열 :

내부는이 같은 (동일한 솔루션, 다른 프로젝트) 형태의 두 번째 열

Dim fa As New frm_art1 
With fa 
    .StartPosition = FormStartPosition.Manual 
    .Location = New Point(Me.Location.X + 20 + (inst * 20), Me.Location.Y)) 
    AddHandler .aClosed, AddressOf frm_artikl_Closed 
    .Show() 
End With 

무엇 무슨 일이야?

frm_art1의 인스턴스를 몇 개 열고 frm_list를 닫을 때 frm_list를 닫으려면 모든 frm_art1이 닫히기를 기대합니다.

하지만 그렇게되지는 않습니다.

frm_list를 닫으려면 (X)를 누를 때마다 frm_art1 인스턴스가 닫히고 마지막으로 모든 frm_art1이 닫히면 frm_frm_list가 닫힙니다.

frm_list를 통해 열린 모든 양식을 얻는 방법은 frm_list를 닫으면 닫힙니다.

비 MDI 환경에서 잘 작동합니다.

For Each frm As Form In My.Application.OpenForms 
    If frm.Name = "frm_art1" Then 
    frm.Close() 
    End If 
Next 

그리고 이것은 또한 작동하지 않습니다

는 지금은 frm_list의 form_closing에 추가로이 시도! frm_list에게 다른 형태의 소유자를 만드는

답변

0

시도 :이 경우

Dim fa As New frm_art1 
With fa 
    .StartPosition = FormStartPosition.Manual 
    .Location = New Point(Me.Location.X + 20 + (inst * 20), Me.Location.Y)) 
    AddHandler .aClosed, AddressOf frm_artikl_Closed 
    .Owner = Me 
    .Show() 
End With 
+0

은 (.Show (나)) frm_list는 immediatelly 닫지 만 모든 frm_art1은 (작업 표시 줄에 최소화) 열려 있습니다. – user1697111

+0

@ user1697111 음, 예, MDI는 구피 수 있습니다. 업데이트 된 답변. 대신'Owner' 속성을 호출 폼에 설정하십시오. – LarsTech

+0

여전히 바보, Lars :(이제는 frm_list가 즉시 닫히고 모든 frm_art1은 "일반"(최소화되지 않음)으로 유지됩니다. 시도 할 추가 아이디어? – user1697111