자식 창 닫을 때 부모 창 메서드 호출 방법
C# 윈도우 폼 애플리케이션에서 자식 창을 닫을 때 부모 창의 메서드를 호출해야 하는 경우가 있습니다. 이 글에서는 자식 창이 닫힐 때 부모 창의 메서드를 호출하는 방법을 예제를 통해 설명합니다.
부모 창에서 자식 창 호출 및 이벤트 추가
부모 창에서 자식 창을 호출할 때, 자식 창의 FormClosed
이벤트에 핸들러를 추가합니다. 이 핸들러는 자식 창이 닫힐 때 호출됩니다.
private void btnPHOTO_Click(object sender, EventArgs e)
{
fromId fromId = new fromId();
fromId._PARAMS = _PARAMS.Trim();
fromId.FormClosed += new FormClosedEventHandler(fromId_FormClosed);
fromId.ShowDialog();
}
// 자식 창이 닫힐 때 호출될 메서드
private void fromId_FormClosed(object sender, FormClosedEventArgs e)
{
this.Inquiry(_PARAMS.Trim());
}
자식 창에서 부모 창 메서드 호출
자식 창이 닫힐 때 부모 창의 메서드를 호출하는 방법을 다음과 같이 구현합니다:
// 부모 창 코드
public class ParentForm : Form
{
private string _PARAMS = "example";
private void btnPHOTO_Click(object sender, EventArgs e)
{
fromId fromId = new fromId();
fromId._PARAMS = _PARAMS.Trim();
fromId.FormClosed += new FormClosedEventHandler(fromId_FormClosed);
fromId.ShowDialog();
}
// 자식 창이 닫힐 때 호출될 메서드
private void fromId_FormClosed(object sender, FormClosedEventArgs e)
{
this.Inquiry(_PARAMS.Trim());
}
private void Inquiry(string params)
{
// 데이터 조회 로직
MessageBox.Show($"Inquiry called with params: {params}");
}
}
// 자식 창 코드
public class fromId : Form
{
public string _PARAMS { get; set; }
private void fromId_FormClosed(object sender, FormClosedEventArgs e)
{
// 자식 창이 닫힐 때 부모 창의 메서드 호출
}
}
중요 포인트
- 부모 창에서 자식 창을 호출할 때
FormClosed
이벤트에 핸들러를 추가합니다.
- 자식 창이 닫힐 때 부모 창의 메서드가 호출되도록 이벤트 핸들러를 구현합니다.
- 부모 창의 메서드가 자식 창이 닫힐 때 올바르게 호출되는지 확인합니다.
위의 방법을 따라 C# 윈도우 폼 애플리케이션에서 자식 창이 닫힐 때 부모 창의 메서드를 호출하는 문제를 해결할 수 있습니다. 이 가이드를 통해 이벤트 핸들러를 올바르게 설정하고 구현하는 방법을 익혀보세요.