2011-03-29 3 views
2

내 Visual Studio 2008 VB.Net 프로젝트 내에서 (열려있는) 폼을 기본 폼의 mdichild로 설정 한 후 여러 폼을 여는 중입니다. 이것은 하나를 제외하고 대부분의 양식에서 실제로 잘 작동합니다. 나는 그들 모두에게 똑같은 일을하고있다. 내가 가지고있는 형태의 코드에서 openForm 서브 루틴 내에서Visual Studio 2008 윈도우 폼이 열린 직후 닫습니다.

Using frm As New frmName() With {.variableName = currentVariable} 
    frm.MdiParent = Me.MdiParent 
    frm.openForm() 
End Using 

:

는 기본적으로 나는 새로운 형태의 선언

Public Sub openForm() 
    InitializeDataSources() 
    ... ... 
    Me.Show() 
End Sub 

나는이 작품을 알고을하기 때문에 나는 기본 폼에 frm.MdiParent = Me.MdiParent을 제거하는 경우와 자식 양식의 Me.Show()에서 Me.ShowDialog()으로 변경하면 완벽하게 작동합니다. 지금은 (단 하나의 양식 만) 양식을 1 초 동안 표시하고 (프로그램을 보았을 때 깜박임처럼 보임) 닫은 다음 닫습니다.

이 문제를 해결하려면 어떻게해야합니까?

답변

9

VB에서 어떤 것이인지 모르겠지만 C#에서는 블록이 실행될 때 명령문에 의해 생성 된 객체를 삭제합니다. 목적이 동일한 경우 은, 다음이 답이다 : 당신은 양식 작성 :

Using frm As New frmName()

다음 당신이 그것을 보여하지만

End Using 
이 실행될 때 양식이 배치됩니다, 즉, 닫혀있다.

+0

정말 고마워요! 이것은 잠시 나를 괴롭 히고있다. :) – Kyra

+1

항상 도와 줘서 기쁩니다 :) – Adi