본문 바로가기

개인공부/c#

[C#, 윈폼] 버튼을 눌러 새 폼 띄우기

가장 먼저 해야할 일은 당연히

버튼을 만드는거겠죠? 

 

버튼 만드는 방법 = https://icepizza.tistory.com/230

 

[C#, 윈폼] 컨트롤(도구) 다루기

C#, 윈폼에서는 다음과 같은 도구들을 컨트롤이라고 합니다 드레그를 통해 컨트롤들을 디자인에 배치할 수 있습니다. 가장 먼저 해야할 일은 컨트롤 우클릭 한 후디자인 - (NAME) 항목을 설정하

icepizza.tistory.com

 

 

그다음 해야할 일은

버튼을 누르면 띄울 새 폼을 만드는 것입니다.

 

 

솔루션 탐색기 > 솔루션 이름 우클릭 > 추가(D) > 새 항목(W)

 

 

Visual C# 항목 > Windows Forms > 양식(Windows Forms) > 추가(A)

추가하기 전 이름(N) 에서 폼 이름을 설정할 수 있습니다.

 

namespace catheter
{
    public partial class Form2 : Form
    {
        public Form1 mainForm;

        public Form2(Form1 form)
        {
            this.Size = new Size(400, 230);
            this.FormBorderStyle = FormBorderStyle.FixedSingle;
            this.mainForm = form;

            InitializeComponent();
        }
    }
}

 

저는 버튼이 달려있는 부모 폼과 데이터 교환을 위해

생성자의 매개변수에 Form1 form을 할당했습니다

 

 

다음은 버튼의 클릭 이벤트를 추가합시다

private void btn_login_Click(object sender, EventArgs e)
        {
            Form2 newform2 = new Form2(this);
            
            // Show() 방식
            newform2.Show();
            
            // ShowDialog() 방식
            newform2.ShowDialog();
        }

 

생성자에 this(Form1)를 넣어줍니다.

생성한 폼을 띄우는데에는 2가지 방법이 있습니다.

 

1. Show() 방식

Show()방식은 새 폼을 띄우지만 기존의 폼도 조작이 가능합니다

따라서 아래와같이 새 폼(여러개의 form2)를 동시에 띄울 수 있습니다

 

 

2. ShowDialog() 방식

.ShowDialog()방식은 띄운 새 폼을 닫기 전까지 전의 폼을 조종할 수 없습니다.