다른 폼으로 문장으로 메시지를 전송하는 방법입니다.
그런데 이 방법은 다소 볼 안전합니다.
전송할 폼의 코드 내용은 다음과 같습니다.
//- 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
}
'C#, MONO' 카테고리의 다른 글
쓰레드 동작중에 Invoke로 문자 쓰기 (0) | 2021.08.09 |
---|---|
다른 폼으로 메시지 전송(3) (0) | 2021.08.09 |
다른 폼으로 메시지 전송(1) (0) | 2021.08.09 |
richTextBox에 Console출력하기 (0) | 2021.08.09 |
버튼 배열을 만들고, 마우스 클릭 이벤트 설정하기 (0) | 2021.08.09 |