(精华)2020年02月14日 WinForm进销存管理系统项目实战(TabControl 控件的使用)

170 阅读1分钟
/// <summary>
/// 实例化窗体页面
/// </summary>
/// <param name="url"></param>
/// <param name="isTop"></param>
private void CreateForm(string url,int isTop)
{
    //程序集的名称
    string assName = this.GetType().Assembly.GetName().Name;
    string frmName = url.Substring(url.LastIndexOf('.') + 1);
    if(!FormUtility.CheckOpenForm(frmName))
    {
        ObjectHandle t = Activator.CreateInstance(assName, assName + "." + url);
        Form f = (Form)t.Unwrap();
        if (f.Name.Contains(MenuDesp.ModifyPwd.ToString()))//修改密码页面传值
        {
            f.Tag = new FMPwdModel()
            {
                UName = uName,
                FLogin = this.fLogin,
                FMain = this
            };
        }
        else
            f.Tag = uName;
        if (isTop == 0)
        {
            //内嵌到选项卡里
            tcPages.AddTabFormPage(f);
        }
        else
        {
            //顶级显示
            f.StartPosition = FormStartPosition.CenterScreen;
            f.WindowState = FormWindowState.Normal;
            f.ShowDialog();
        }
    }
}
/// <summary>
/// 添加窗体页面到选项卡中
/// </summary>
/// <param name="tab"></param>
/// <param name="form"></param>
public static void AddTabFormPage(this TabControl tab, Form form)
{
        form.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
        form.TopLevel = false;
        form.Dock = DockStyle.Fill;
        form.WindowState = FormWindowState.Maximized;
        TabPage page = new TabPage();
        page.Controls.Add(form);
        page.Name = form.Name;
        page.Text = form.Text;
        page.Width = form.Width;
        page.Height = form.Height;
        tab.TabPages.Add(page);
        tab.SelectedTab = page;
        form.Show();
}