다른 폼 간의 이벤트 설정
C# 에서는 컴포넌트(체크박스, 텍스트 박스 등)를 public으로 선언하면 폼 간의 컴포넌트 이벤트를 설정할 수 있습니다.
폼2에서 체크박스를 변경하면 폼1에서는 이벤트로 처리가 가능한 예제를 만들어 보겠습니다.
폼1 소스 |
public partial class Form1 : Form { // 일단폼를생성하고, 폼의중복생성방지를위해hide, show 를이용합니다. Form2 frmForm2 = new Form2();
public Form1() { InitializeComponent();
// 애플상태변경이벤트체크 frmForm2.chkApple.CheckedChanged += new EventHandler(chkApple_CheckedChanged);
// 바나나상태변경이벤트체크 frmForm2.chkBanana.CheckedChanged += new EventHandler(chkBanana_CheckedChanged); }
void chkBanana_CheckedChanged(object sender, EventArgs e) { this.UpdateLabel(); }
void chkApple_CheckedChanged(object sender, EventArgs e) { this.UpdateLabel(); }
void UpdateLabel() { this.lblData.Text = ""; if (frmForm2.chkApple.Checked) this.lblData.Text += "사과,"; if (frmForm2.chkBanana.Checked) this.lblData.Text += "바나나,"; }
private void button1_Click(object sender, EventArgs e) { // 이미생성된것이라show만해줍니다. frmForm2.Show(); }
} |
폼2 소스 |
public Form2() { InitializeComponent(); }
private void Form2_FormClosing(object sender, FormClosingEventArgs e) { // 폼를닫기했을때실제로닫히지않고hide로숨기기만합니다. this.Hide(); e.Cancel = true; } |
전체 소스
![]() |
- [2018/02/26] List 에서 고유값 얻기 (4027)
- [2015/05/22] C#, 아두이노 간의 WIFI 통신으로 LCD 제어 (4565)
- [2015/03/13] 항상 마지막에 추가한 TEXT 보이게 (15782)
- [2014/01/17] ComboBox Text 편집 안되게 (14491)
- [2014/01/08] if 문에서 여러개 비교할때 (25340) *3
- [2013/12/30] C++, C# 간단한 기능 비교 (12884)
- [2013/12/18] 3자리마다 ,(콤마) 찍기 (원화, 달러 표시) (15224)
- [2013/09/29] 설치된 IE 버전 얻기 (12397)
- [2013/08/29] byte array to Hexa String (13026)
- [2013/06/25] string array to string (스트링 문자열 합치기) (23713)
지식인에 답변 달아 주셔서 고맙습니다.
죄송한데 제가 원하는 코딩은 아래와 같은데 구현 가능할까요??
public 으로 선언하지 않고 get, set으로 하는법 알려주실수 있나요???
그리고 폼2에서 확인 버튼을하면 체크한값을 폼1에 출력하고 취소 버튼을 클릭하면 취소하였습니다.
라고 메세지를 띄우고 싶거든요
(참고로 모달리스로 열고 폼은 여러개 뜨지 않고 한개만 열리게 하고 싶습니다.)