C#, MONO
다른 폼으로 메시지 전송(2)
gigasound
2021. 8. 9. 10:44
다른 폼으로 문장으로 메시지를 전송하는 방법입니다.
그런데 이 방법은 다소 볼 안전합니다.
전송할 폼의 코드 내용은 다음과 같습니다.
//- userControl class
public partial class UserControl1 : UserControl{
//- property로 변경 내용 (event)이 있음을 알림
public event PropertyChangedEventHandler PropertyChanged;
//- 변경될 내용이 기록되는 멤버
private string str_msg;
public UserControl1(){
InitializeComponent();
}
//- 변경 내용이 전달되는 함수 정의
public string Message{
get { return str_msg; }
set{
if (value != str_msg) {
str_msg = value;
if (PropertyChanged!= null){
PropertyChanged(this, new PropertyChangedEventArgs(msg));
}
}
}
}
private void button1_Click(object sender, EventArgs e){
//- 전달 내용 전달을 위한 처리
this.Message = button1.Text;
}
수신 측인 메인 폼의 내용입니다.
private void Form1_Load(object sender, EventArgs e) {
//- userform에서 property 변경 이벤트를 수신하는 콜백함수 선언
cntr.PropertyChanged += Cntr_PropertyChanged;
// press tab + tab after +=
// and it will generate the following method automatically.
}
//- 콜백함수
private void Cntr_PropertyChanged(object sender, PropertyChangedEventArgs e) {
textBox1.Text = cntr.a.ToString(); //cntr is the instance of UserControl1
}