C#

(C#) 다른 폼에 값 전달하기: Modifiers 속성 이용

코딩ABC 2023. 6. 25. 07:24
반응형

한 개의 폼에서 다른 폼으로 값을 전달하는 방법에는 몇 가지가 있습니다.

여기에서는 컨트롤의 Modifiers 속성을 이용해서 다른 폼에 있는 컨트롤에 값을 전달하는 방법을 설명합니다.

 

 

Modifiers 속성

Modifiers 속성은 해당 컨트롤에 할당된 액세스 한정자입니다. 기본값은 private로 설정되어 있어서 다른 폼(또는 다른 클래스)에서 접근이 금지되어 있습니다. 이 속성값을 public 또는 internel로 설정하면 다른 폼으로 부터 값을 받을 수 있게 됩니다.

예제를 통해서 다른 폼에 값을 보내는 코드를 작성해 보겠습니다.

 

예제

1. 프로젝트를 생성합니다.

- Windows Forms  앱

.NET 6.0 (장기지원)

 

2. 폼을 2개 생성합니다

- Form1, Form2

 

3. Form1을 다음과 같이 디자인합니다.

버튼 2개, TextBox 1개

다른 폼에 값 전달하기: Modifiers 속성 이용

 

4. Form2에는 Form1의 텍스트박스(textBox1)에서 보낸 데이터를 받아서 출력하는 ListBox 컨트롤을 1개 배치합니다.

- ListBox 1개

다른 폼에 값 전달하기: Modifiers 속성 이용

 

5. Form2의 ListBox는 다른 폼(Form1)에서 보낸 값을 받을 수 있도록 Modifiers 속성을  Public 또는 Internel로 변경합니다.

다른 폼에 값 전달하기: Modifiers 속성 이용

 

6. Form1에서 [Form2 호출] 버튼에 대한 코드를 작성합니다.

매개변수로 this(현재 Form1)을 넘겨줍니다. 아마 new Form2에 오류가 표시될 것입니다.

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2(this);
            f2.Show();
        }

 

7. Form2에 매개변수 Form1를 받는 생성자를 추가합니다.

    public partial class Form2 : Form
    {
        Form1 f1;                       // 추가한 코드
        public Form2()
        {
            InitializeComponent();
        }

        public Form2(Form1 f1)              // 추가한 생성자
        {
            InitializeComponent();
            this.f1 = f1;
        }

        private void Form2_Load(object sender, EventArgs e)
        {

        }
    }

 

8. Form1의 [보내기] 버튼 코드를 작성합니다.

입력한 TextBox의 내용을 다른 폼인 Form2 의 ListBox에 값을 보내는 코드입니다.

이미 작성한 코드를 아래와 같이 조금 수정합니다.

    public partial class Form1 : Form
    {
        Form2 f2;                   // 수정된 코드
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            f2 = new Form2(this);               // 수정된 코드
            f2.Show();
        }

        private void button2_Click(object sender, EventArgs e)   // 추가한 코드
        {
            f2.listBox1.Items.Add(textBox1.Text);
        }
    }

 

9. 실행합니다.

값 전달이 잘 되는 것을 확인합니다.

다른 폼에 값 전달하기: Modifiers 속성 이용

 

 

다른 폼에 값 전달하기: Modifiers 속성 이용

 

 

반응형