【问题标题】:Load another form inside the main form panle在主表单面板中加载另一个表单
【发布时间】:2019-02-28 02:04:47
【问题描述】:

我想在主表单面板中加载另一个表单。选择另一个表单后,需要删除主表单,并将新表单设置为面板。

主窗体

第二种形式

代码

 this.Wrapper.Controls.Clear();
        this.Wrapper.Visible = true;

        FrmCompany frm = new FrmCompany()
        {
            Width = this.Wrapper.Width,
            Height = this.Wrapper.Height,
            TopLevel = false,
            AutoScroll = true,
            ControlBox = false,
            Dock = DockStyle.Fill,
            WindowState = FormWindowState.Maximized,
            Style = MetroColorStyle.Default
        };
        this.Wrapper.Controls.Add(frm);

        frm.Left = 0;
        frm.Top = 0;

        frm.Show();

【问题讨论】:

  • 修改为包含您希望回答的明确问题。确保显示任何代码或描述您已经尝试过的内容。您提供的上下文越多,获得高质量答案的几率就越大。
  • 要在内容面板中显示表单,只需将表单的TopLevel 属性设置为false 并将其中的FormBorderStyle 设置为None,然后将它们添加到中心容器控件集合并显示表单即可.要删除表单,请将其关闭。
  • 不要为每个选项卡设置多个表单,而是为每个选项卡制作更适合用途的用户控件

标签: c# .net winforms user-interface


【解决方案1】:

如果想在面板中显示表单,请执行以下操作

private void button1_Click(object sender, EventArgs e)
    {
        Form2 newofrm = new Form2();//new instance
        newofrm.TopLevel = false;//allow to added to panel
        this.panel1.Controls.Add(newofrm);// add to panel
        newofrm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;// remove boarder
        newofrm.Dock = DockStyle.Fill;// completely fill panel
        newofrm.Show();// show the form
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多