【毕设】Winform窗口集成到TabControl的方法

实例主要由三个类组成:主界面MainForm,功能类Function,新建窗体例如FrmAddProduct

 

通过异步调用实现添加TabPage,并将窗口加到TabPage。

首先需要声明委托:

public delegate void CreateFormDelegate(string str, Form form);

str是TabPage的页名,form是新建窗口的对象,在词例中是:

FrmAddProduct frmAddProduct

在主界面窗体类中添加代码:

public partial class MainForm : Form
{
    private Function function = new Function();
    
    public MainForm()
    {
        InitializeComponent();
        function.createTabPageEvent += CreateTabPage;//绑定事件
    }

    //事件执行的具体方法
    public void CreateTabPage(string tabPageName, Form form)
    {
        CreateFormDelegate del = delegate (string m, Form _form)
          {
              //创建新的TabPage用以添加窗体
              TabPage tp = new TabPage();
              tabControl1.TabPages.Add(tp);
              tp.BorderStyle = BorderStyle.None;
              tp.Text = m;
              tp.Controls.Add(form);
          };
        //异步调用
        tabControl1.Invoke(del, tabPageName, form);
    }

    private void 添加商品ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        FrmAddProduct frmAddProduct = new FrmAddProduct();
        function.CreateForm("添加商品", frmAddProduct);
    }
}

功能类Function:

class Function
{
    public event CreateFormDelegate createTabPageEvent;
  
public void CreateForm(string formText, Form _form) { _form.TopLevel = false; _form.ControlBox = false; _form.Dock = DockStyle.Fill; if (createTabPageEvent != null) createTabPageEvent(formText, _form); _form.Show();
}
}

 

posted on 2017-02-10 14:49  DAantony  阅读(799)  评论(0)    收藏  举报

导航