대화상자를 띄우고 필요한 정보를 입력받아 부모폼으로 불러와야하는 경우,
event와 delegate 를 통해 데이터를 보낼 수 있다.
// 자식폼
using System;
namespace child
{
public class form2
{
public delegate void DataHandler(string name, int number);
public event DataHandler data_handler;
public child()
{
InitializeComponent();
this.data_handler("name", 1);
this.Close();
}
}
}
// 부모폼
using System;
namespace parent
{
public class form1
{
public parent()
{
InitializeComponenet();
string Name = String.Empty;
int Number = 0;
child_form.data_handler += get_data;
child child_form = new child();
Console.WriteLine(Name);
Console.WriteLine(Number);
this.Close();
}
public void get_data(string name, int number)
{
Name = name;
Number = number;
}
}
}
// 결과
// name
// 1
event가 어떻게 작동하는 것인지 따로 공부해볼 필요가 있겠다.
자식 폼이 닫히기 전에 어떻게 부모폼에서 event를 받는건지 전혀 이해가 안되고 있다.