【毕设】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();
}
}
浙公网安备 33010602011771号