在C#中使用Panel控件实现在一个窗体中嵌套另一个窗体

Posted 我喜欢大白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C#中使用Panel控件实现在一个窗体中嵌套另一个窗体相关的知识,希望对你有一定的参考价值。

在C#中使用Panel控件实现在一个窗体中嵌套另一个窗体
ShowAllPage sAllPage = new ShowAllPage();
          //  sAllPage.FormBorderStyle = FormBorderStyle.None;
           // sAllPage.Dock = DockStyle.Fill;
            sAllPage.TopLevel = false;
            this.MainPanel.Controls.Clear();
            this.MainPanel.Controls.Add(sAllPage);
            sAllPage.Show();

MainPanel为主窗体中的Panel控件,ShowAllPage为要在主窗体中显示中Panel中的窗体.

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

FormBorderStyle 属性设置新窗体的边框样式
Dock属性获取或设置哪个边框停靠到父框体并确定如何随父框体一起调整大小
这两项属性可不加

 

但是用一个最简单的方法来说,就是使用MDI
首先,父窗口要设置IsMdiContainer属性为True。实现MDI结构的父子窗口套用
然后在窗口跳转处改为如下代码:
例:一般跳转:Form1 f=new Form();
                                 F.Show();
改为:
Form1 c = new Form1();
            c.MdiParent = this;
            c.Show();
不过这样有时会遇到一个问题,就是子窗体在跳出的时候会以父窗体的0,0坐标为准,所以在父窗体中如果有菜单栏的话,子窗体会被遮盖上,那么我们就在子窗体的Form_Load()中加上一句话来设置它与窗体上边缘的距离
this.Top = 100;
这样就完成了一个窗体在另一个窗体中的嵌套

以上是关于在C#中使用Panel控件实现在一个窗体中嵌套另一个窗体的主要内容,如果未能解决你的问题,请参考以下文章

c#中关于splitContainer控件的用法:如何做到不清除控件就能在panel2中打开一个窗体呢?

C# 能够让窗体的高度超过屏幕的最大高度吗?winform实现浏览器的效果。

c# splitContainer能把窗体分割成三部分或者更多的部分吗?

C#把winform中的Panel控件部分全屏

C# Winform自定义控件加载到主窗体中之后,自定控件上面的空间 怎么和主窗体上其他控件交互?

【C# panel】怎样能使填充窗体后的panel响应一下鼠标事件呢?