본문 바로가기

Winform

[Winform] TabControl에서 다른 Form 띄우기

반응형

1. Winform 초기 화면

 

2. TabControl 생성

- 화면 왼쪽에 도구 상자를 클릭하면 TabControl이 보입니다. 클릭해서 Form1에 생성시킵니다.

- Form1 안에 TabControl이 생성됩니다.

2. 다른 Form 생성

- 화면 위에 프로젝트 -> 양식 추가(Windows Forms) -> 양식(Windows Forms)을 누르시면 Form2가 생성이 됩니다.

빨간색 박스 (프로젝트) [1]
빨간색 박스 (양식 추가) [2]
빨간색 박스 (양식) [3]

- Form2이 생성됩니다.

- Form2를 한번 클릭하면 속성에 FormBorderStyle이라는 것이 있는데 None이라고 바꿔줍니다. (빨간색 박스)

- 파란색 박스는 Form2의 이름을 바꿔줍니다.

- FormBorderStyle = Sizable

- FormBorderStyle = None

 

3. TabControl에서 Form2, Form3 띄우기

-  제목 2의 방법처럼 Form을 하나 더 생성합니다. (Form3)

-  Form1.cs에서 밑에 있는 코드를 작성합니다.

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 Test1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Load += TabPage1_Load;
            this.Load += TabPage2_Load;
        }
 
 
        private void TabPage1_Load(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.TopLevel = false;
            tabControl1.TabPages[tabControl1.TabPages.Count - 2].Controls.Add(f2);
            tabControl1.SelectedIndex = tabControl1.TabPages.Count - 2;
            f2.WindowState = System.Windows.Forms.FormWindowState.Maximized;
            f2.Show();
        }
 
        private void TabPage2_Load(object sender, EventArgs e)
        {
            Form3 f3 = new Form3();
            f3.TopLevel = false;
            tabControl1.TabPages[tabControl1.TabPages.Count - 1].Controls.Add(f3);
            tabControl1.SelectedIndex = tabControl1.TabPages.Count - 1;
            f3.WindowState = System.Windows.Forms.FormWindowState.Maximized;
            f3.Show();
        }
    }
}
 
 
cs

 

  3.1 Form2, Form3

  - Form2, Form3에 도구 상자를 열어서 각각 버튼을 하나씩 생성해 줍니다.

- Form2.cs, Form3.cs에 밑에 있는 코드를 작성합니다.

- .cs는 button1을 더블클릭하시면 코드페이지가 생성됩니다.

- Form2.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Test1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Form2!!");
        }
    }
}
 
cs

 

- Form3.cs

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 Test1
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Form3!!");
        }
    }
}
 
cs

 

4. Result

- tabPage1에 Form2의 폼이 들어가 있고,

- tabPage2에 Form3의 폼이 들어가 있습니다.

 

- 이상으로 포스팅 마치겠습니다. 감사합니다.

 

 

 

 

 

 

반응형