2014-09-01 1 views
0

Im은 Form_Load에서 MDI 하위를 닫으려고 시도하지만 "창 핸들을 만드는 동안 오류가 발생했습니다."라는 오류가 발생합니다.C# 사용자 정의 컨트롤에서로드시 MDI 자식 닫기

나는 사용자가 해당 양식에 액세스 할 수 있는지 확인하고 액세스 권한이없는 경우 양식을 닫습니다.

if (!Functions.Contains("Access")) 
{ 
        var frm = ((Form)this.Parent); 
        frm.Close(); 
} 
+2

확인 * 전에 * 호출 form.Show() –

+0

문제는 난에 내 양식을 원하는 것입니다 보안을 위해 모든 코드를 가질 다른 것을 상속합니다. 보안을 위해 각 버튼의 유효성을 검사 할 필요가 없습니다. –

답변

1

본인은 귀하의 질문에 의심 스럽습니다. 귀하의 부모 양식 또는 mdi 자녀 양식을 닫으려고합니다. 당신은 부모 양식의 참조를 얻기위한 코드를 작성했지만 단락마다 자녀 양식을 닫고 싶습니다.

이렇게하려면 "표시됨"이벤트를 사용해야합니다. 부모 폐쇄 예를 들어

:

private void Form2_Shown(object sender, EventArgs e) 
     { 
      this.Close(); 

      Application.Exit(); 
     } 

외아들 폐쇄에 대한 : 액세스

private void Form2_Shown(object sender, EventArgs e) 
     { 
      this.Close(); 

     }