【问题标题】:Can I load a new form into panel?我可以将新表单加载到面板中吗?
【发布时间】:2011-12-21 01:13:54
【问题描述】:

我正在开发 Windows 应用程序。我有一个表单中的菜单条,我想问一下,我可以有一个面板,它可以在特定单击 menustripitem 时加载新表单。

例如:

File Data 
  ABC  Hello
  XYZ  Bye

这是我的菜单栏。点击 ABC 我不想进入不同的表单,我可以做点什么吗 (无论我想要)在同一个表单上使用面板。

谢谢

【问题讨论】:

  • 最好使用 UserControls 而不是 Forms。

标签: c# panel frontend windows-applications


【解决方案1】:

我想我也有同样的问题。

但我找到了答案

CodeProject Example

首先你必须配置表单:

myForm.FormBorderStyle = FormBorderStyle.None;

然后,操纵动作:

Form1 myForm = new Form1();
myForm.TopLevel = false;
myForm.AutoScroll = true;
frmMain.Panel2.Controls.Add(myForm);
myForm.Show();

希望能帮到你。拥抱:D

【讨论】:

    【解决方案2】:

    您可以使用MDI 表单。 试试这样的

     //Create a new instance of the MDI child template form
        Form2 child= new Form2(); 
    
        //Set parent form for the child window 
        child.MdiParent=this;
    
        //Display the child window
        child.Show()
    

    你也可以参考这个site

    【讨论】:

      【解决方案3】:

      如果您将目标表单的全部内容放入 UserControl 中,您可以在主表单中添加一个面板并将 UserControl 放置在该面板上。

      您仍然可以选择通过创建一个空表单并将相同的 UserControl 也放置在该表单上来显示单独的表单。

      正如 Int3 ὰ 已经指出的那样,您可以改用 MDI 表单。但是,如果您想使用可停靠面板,UserControl 将是您的最佳选择。

      【讨论】:

        【解决方案4】:

        在您的表单上添加两个面板,同时只有一个可见。然后,在您的菜单上添加两个事件:

        private void ABCToolStripMenuItem_Click(object sender, EventArgs e) {
            panelABC.Visible = true;
            panelXYZ.Visible = false;
        }
        
        private void XYZToolStripMenuItem_Click(object sender, EventArgs e) {
            panelABC.Visible = false;
            panelXYZ.Visible = true;
        }
        

        【讨论】:

          【解决方案5】:
            private void pbxpurchase_Click(object sender, EventArgs e)
              {
                  contentpnl.Controls.Clear();//contentpnl is the panelname
                  purchasebook purchasebk = new purchasebook();//purchasebook is a formname
                  purchasebk.TopLevel = false;
                  purchasebk.AutoScroll = true;
                  contentpnl.Controls.Add(purchasebk);
                  purchasebk.Dock = DockStyle.Fill;
                  purchasebk.Show();
          
              }
          

          试试这个 100% 测试的

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-01-27
            • 2013-10-18
            相关资源
            最近更新 更多