1. 폼간 데이터 전달(Form2신규 생성)
- Form1의 버튼을 누를때마다 Form2가 신규로 생성되며, From2의 textBox2에 Form1의 textBox1의 데이터가 써진다.
- Form2의 버튼을 누를때마다 Form1의 TextBox2에 데이터가 써진다.
// Form1
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2(); // 버튼을 누를때마다 폼을 생성한다.
frm2.Show();
frm2.WriteTextEvent += new Form2.TextEventHandler(frm2_WriteTextEvent); // 델리게이트를 통한 이벤트 등록
frm2.received2(textBox1.Text); //Form2로 데이터 전달
}
void frm2_WriteTextEvent(string text)
{
this.textBox2.Text = text;
}
}
//Form2
public partial class Form2 : Form
{
public delegate void TextEventHandler(string text);
public event TextEventHandler WriteTextEvent;
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
WriteTextEvent(textBox1.Text); // 등록된 이벤트를 통하여 Form1으로 데이터 전달
}
public void received2(string str)
{
this.textBox2.Text = str;
textBox2.Invalidate();
}
}
2. 폼간 데이터 전달(Form2 1회 생성하여 상호간 데이터 전달)
- Form1의 버튼을 누를때마다 From2의 textBox2에 Form1의 textBox1의 데이터가 써진다.
- Form2의 버튼을 누를때마다 Form1의 TextBox2에 Form2의 textBox1의 데이터가 써진다.
// Form1
// Form1이 생성될때 Form2를 활성화해서 이후 이를 사용하여 데이터를 전달한다. Form2부분은 변화가 없다.
public partial class Form1 : Form
{
Form2 frm2 = new Form2(); // Form1 생성시 Form2 등록
public Form1()
{
InitializeComponent();
frm2.Show(); // Form2 Show
frm2.WriteTextEvent +=new Form2.TextEventHandler(frm2_WriteTextEvent); // 생성 당시 이벤트 등록
}
private void button1_Click(object sender, EventArgs e)
{
frm2.received2(textBox1.Text);
}
void frm2_WriteTextEvent(string text)
{
this.textBox2.Text = text;
}
}
'개발 > C#' 카테고리의 다른 글
C# [시스템] delay 함수 (0) | 2019.03.23 |
---|---|
C# [정규식] 문자열 추출 (0) | 2019.03.21 |
C# Html to pdf 변환 (0) | 2018.11.20 |
C# 웹브라우저 메모리 누수 (0) | 2018.06.08 |
[그래프] C# 속도계 (Gage) (0) | 2018.04.25 |
[그래프] C# 실시간 그래프 (2) | 2018.04.25 |
[팁] 델리게이트, 폼간 데이터 공유(주거니 받거니) (0) | 2018.04.16 |
[팁] 이벤트, 폼간 데이터 공유 (0) | 2018.04.16 |