[C#] Embed Form In TabControl

Progress Flow

  • Add new Form
    1. Project → Add → New Item → Windows Form
    2. Set FormBorderStyle to None
    3. Add a Panel and Dock in Form
    4. Add your Controls, and set Anchor
  • Add TabControl
    1. Select Main Form
    2. Add TabControl
    3. Remove all Tabpages
  • Add Button (Add Page)
    1. Set Event (Click)
        private void btnAdd_Click(object sender, EventArgs e)
        {
            TabPage tp = new TabPage();
            
            Form1 frm = new Form1();
            frm.TopLevel = false;

            tabControl1.TabPages.Add(tp);
            tp.Controls.Add(frm);
            frm.Show();
            frm.WindowState = FormWindowState.Maximized;
    }
  • Issues about Size Changed
        private void Main_SizeChanged(object sender, EventArgs e)
        {
            ResizeTab();
        }

        private void tabControl_SelectedIndexChanged(object sender, EventArgs e)
        {
            ResizeTab();
        }

        private void ResizeTab()
        {
            if (tabControl1.TabPages.Count > 0)
            {
                TabPage tp = tabControl1.SelectedTab;
                if (tp.Controls.Count > 0)
                {
                    ((Form)tp.Controls[0]).WindowState = FormWindowState.Normal;
                    ((Form)tp.Controls[0]).WindowState = FormWindowState.Maximized;
                }
            }
    }
  • Demo

2016-3-24 下午 04-31-08.png

 

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s