[C# 윈폼] 폼간 데이터 전달하는 방법 (부모폼 -> 자식폼, 자식폼 -> 부모 폼)
- C#/Windows Form
- 2019. 10. 18. 01:00
안녕하세요.
오늘은 C# 윈폼에서 폼간 데이터 전달하는 방법에 대해서 알려드리고자 합니다. 폼간 데이터 전달하는 방법에는 여러가지 방법들이 있겠지만,
오늘 제가 알려드리려고 하는 방법은 델리게이트, 이벤트를 이용해서 자식폼에서 부모폼으로 데이터를 전달하는 방법을 알려드리고자 합니다.
해당 내용을 숙지하고 계시면, 폼간의 데이터를 매우 간단히 전달할 수 있기 때문에, 해당 로직을 따라하시면서 전체적인 내용과 구조를 익히시면 좋을거에요.
그럼 바로 예제를 통해서 보여드릴게요.
우선 아래와 같이 부모폼, 자식폼 총 두개의 윈폼을 생성해 주시고, 아래와 같이 컨트롤들을 배치시켜 주시기 바랍니다.
부모 폼
자식 폼
위와 같이 컨트롤들을 알맞게 배치하셨다면, 이제 각각 부모폼, 자식폼의 .cs 파일에 아래와 같은 소스코드를 보시면서 따라 작성해 주시기 바랍니다.
부모폼.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;
namespace test123 { public partial class Form1 : Form { public Form1() { InitializeComponent();
this.btn_Child.Click += uiBtn_Child_Click; }
public void uiBtn_Child_Click(object sender, EventArgs e) { //자식폼 호출 Form2 frm = new Form2();
//자식폼 이벤트 호출하기 frm.ChildFormEvent += EventMethod;
//자식폼 Show frm.ShowDialog(); }
public void EventMethod(string str) { //자식폼에서 델리게이트로 이벤트 발생 시키면 현재 함수 //EventMethod 호출 textBox1.Text = str.ToString(); } } }
|
자식폼.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;
namespace test123 { public partial class Form2 : Form { //델리게이트 선언 public delegate void ChildFormSnedDataHandler(string message);
//이벤트 선언 public event ChildFormSnedDataHandler ChildFormEvent; public Form2() { InitializeComponent();
this.button1.Click += uiBtn_Click; }
public void uiBtn_Click(object sender, EventArgs e) { string str = string.Empty; str = textBox1.Text;
//델리게이트 이벤트를 통해 부모폼으로 데이터 전송 this.ChildFormEvent(str);
this.Close(); } } }
|
여기까지 모두 소스코드를 다 작성하셨다면 이제 작업은 모두 완료된 것입니다.
그러면 이제 실제 프로그램을 실행시켜 자식폼의 데이터가 부모폼으로 제대로 전달이 되는지 확인해 보도록 하겠습니다.
실행 결과
이렇게 실행 결과 제대로 나오는 것을 확인하실 수 있습니다.
이로써, 폼간의 데이터 전달하는 방법에 대해서 알아보았습니다.
감사합니다.^^
'C# > Windows Form' 카테고리의 다른 글
[C# 윈폼] TreeView 컨트롤 CheckBox 로 변경 및 체크 이벤트 선언하기 (0) | 2019.10.30 |
---|---|
[C# 윈폼 문법] TreeView 컨트롤 사용 방법(데이터 저장하기) (0) | 2019.10.28 |
[C# 윈폼] 윈폼 컨트롤(Control) 마우스 휠(Mouse Wheel) 이벤트 제어 하는 방법 (0) | 2019.10.09 |
[C# 윈폼] TextBox, Button (텍스트박스, 버튼) Enter Key(엔터키) 이벤트 발생 하기 (1) | 2019.10.03 |
[C# 윈폼] C# 윈폼(Windows Form) CMD 창 실행하여, 방화벽(Firewall) 제어(켜기/끄기) 하는 방법 (0) | 2019.09.10 |
이 글을 공유하기