2014-12-15 9 views
1

실제로 학교에서 .net으로 프로그램을 작성하고 있습니다. 내가 처음으로 사용하고 있는데 질문이 있습니다.특정 MdiChild가 닫힐 때 MdiParent에서 실행 메서드

두 개의 MdiChildren : config 양식과 기사 목록 양식을 가진 MdiParent 양식이 있습니다. config 양식을 작성하면 기사 목록이 나타납니다.

나는 실제로 MdiParent에서이 방법을 사용하고 있습니다 ...

private void MotherMdi_MdiChildActivate(object sender, System.EventArgs e) 
{ 
    ...; 
} 

하지만이 방법은 mdichild의 개폐마다 발사되기 때문에 여러 변수를 처리 할 필요가

One MdiChild이 닫혀있을 때만 특정 메서드를 호출 할 수 있습니까?

고마워요.

답변

2

이벤트 FormClosing은 Windows 양식이 닫힐 때마다 발생합니다. 양식을 닫을 때 해당 이벤트를 처리하고 처리해야 할 작업을 수행 할 수 있습니다. 부모 폼에서

: 자식 폼에서

private void ParentForm_Load(object sender, EventArgs e) 
     { 
      ChildForm childForm = new ChildForm(); 
      childForm.childFormClosed += childForm_childFormClosed; 
     } 

     void childForm_childFormClosed(object sender, FormClosedEventArgs e) 
     { 
      // Handle processing here 
     } 

:

public event EventHandler<FormClosingEventArgs> childFormClosed; 

     private void ChildForm_FormClosing(object sender, FormClosingEventArgs e) 
     { 
      if (childFormClosed != null) 
      { 
       childFormClosed(sender, e); 
      } 
     } 

즉 당신이 필요로하는 경우 당신은 FormClosed를 사용할 수 있습니다.

FormClosingEventArgs보다 많은 정보를 전달하려면 자신의 상속 된 클래스를 사용할 수도 있습니다.

+0

그것은'MdiChild' 설정 폼에서 이미 끝났습니다. 나는 그 함수에서 특정한 처리를하고 있습니다 만,'MdiParent'에서 또 다른'MdiChild'를 시작하기 위해 그것을 체크 할 필요가 있습니다. – Zero

+0

응답을 업데이트했습니다. – danish