◆ 다른 폼 간의 이벤트 설정

     

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;

}

 

◆ 전체 소스  

+ Recent posts