[C# 윈폼] 폼간 데이터 전달하는 방법 (부모폼 -> 자식폼, 자식폼 -> 부모 폼)


 

안녕하세요.


오늘은 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();

        }

    }

}

 

Colored by Color Scripter

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

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();

        }

    }

}

 

Colored by Color Scripter

cs

 

여기까지 모두 소스코드를 다 작성하셨다면 이제 작업은 모두 완료된 것입니다.

 

그러면 이제 실제 프로그램을 실행시켜 자식폼의 데이터가 부모폼으로 제대로 전달이 되는지 확인해 보도록 하겠습니다.

 

실행 결과




 

이렇게 실행 결과 제대로 나오는 것을 확인하실 수 있습니다.

 

이로써, 폼간의 데이터 전달하는 방법에 대해서 알아보았습니다.

감사합니다.^^


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY