카테고리 없음

폼(Form)간 데이터 전달 (C#)

Changj 2024. 4. 12. 11:46

C#에서 Form-Form간 데이터 전달은 여러 방식이 있다

 

그중 설명할 방법은

 

메서드와 Form에 대한 참조(Reference)를 이용한 방법이다.

(Form2에서 Form1으로 데이터를 전달)

 

 

설명할 로직

Form2의 TextBox에 데이터를 입력하면 Form1의 TextBox에 그 데이터가 뿌려진다.

 

 

 

우선 전달받은 데이터를 담아줄 메서드를 Form1에 만들어준다

 

 

 

그리고 Form2을 생성해줄 버튼에 새로운 form을 생성해준다 (만드는 법은 다른 게시글에 나와있다)

 

 

이때 사진처럼 Form2(this)를 했다면 Form2에는 생성자가 포함되어 있지 않다는 에러가 뜰 것이다

 

이는 말그대로 Form2에 생성자를 만들지 않아서

Form2의 매개변수에 this(자신의 참조)를 넘겨 줄 수 없기 때문에 나타난 오류이다

(버튼 이벤트 핸들러에서 this(자신의 참조)를 넘겨주려고 하지만 넘겨줄 수 없음)

 

따라서 Form2에 생성자를 만들어줘야 한다

생성자 : 객체를 생성할 때 호출되는 메서드로 매개변수 전달이 가능하다는 특징을 가지고 있다

 

this : 클래스 내에서 클래스가 가지고 있는 멤버필드 또는 멤버메서드를 직접 참조할 수 있는 자신의 참조변수

즉, 객체가 자기 자신을 가리키고 싶을 때 사용하는 키워드

 

 

Form2에 생성자를 만들어 줌으로써

Form2객체 생성시 앞서 만들어준 생성자를 이용하여 this(자신의 참조-Form1)를 (Form1 form)에 넘겨주는 것이다

 

 

마지막으로 Form2의 버튼과  Form1에서 만들어준 Data 메서드를 이용해서(Form1에 접근) 데이터를 전달해주면 된다

 

 

 

결과)

1. Form1의 버튼을 통해 Form2를 열어준다

2. Form2의 textBox에 데이터 입력 후 버튼을 누르면 입력한 데이터가 Form1에 전달된다

3. 그 데이터가  Form1의 textBox에 표시된다.