• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

在主窗体Panel中添加新的窗体(C#,winform开发)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文的要写的是如何将窗体(Form)添加到panel中。

为什么要这样呢?
1)如果用tab控件,整个窗体的控件太多,不易于我们编程;
2)可以更灵活的控制窗体的布局。

 

我想你一定看过这样的配制信息窗体吧(迅雷的配置页面)。

在你的项目开发中,是否也希望做出这种效果呢?
应该如何设置呢?
单击窗体的左边的按钮,窗体右边的内容会根据单击的按钮变化.
开始是想到的设置思路很简单,主窗体(如上图),右边放置一个Panel控件.
然后根据单击的按钮将子窗体显示在Panel控件上.
在按钮的单击事件中加入下面的代码:
private void button1_Click(object sender, EventArgs e)
            {
                ChildForm child = new ChildForm();
               this.panel1.Controls.Add(child);
               child.Show();
            }
运行程序
显示“不能将顶级控件添加到一个控件上”出现“不能将顶级控件添加到一个控件上”错误怎么处理?
在代码中加入
                child.TopLevel = false;
OK.
新问题又出现了.我们不希望子窗体的标题和边筐也显示在父窗体中,再添加如下代码.

              child.FormBorderStyle = FormBorderStyle.None;
现在的感觉是不是舒服多了.
但是还隐藏着一个新问题.怎样动态设置子窗体的Size、Location等呢?
我希望在调整父窗体大小时,Panel1      中子窗体的大小也跟随动态自动调整 .
需要加入下面的事件
private      void      panel1_Resize(object      sender,      System.EventArgs      e)   
     {   
         try   
           {   
     this.child.ClientSize      =      new      System.Drawing.Size(panel1.Size.Width,      panel1.Size.Height);   
           }   
         catch(System.Exception      Er)   
           {   
     MessageBox.Show(Er.ToString());   
           }   
     }  
编译无错,执行时(Error:      未将对象引用设置到对象的实例)   
     但连续点了4个一样的错误提示确认后,程序却可以正常执行,并且form1调整窗体大小form2也可以随之响应了。   
此计不行,又生一计.
我们可以把子窗体当成一个控件,设置Dock属性不就行了吗?
赶快测试一下:
private void button1_Click(object sender, EventArgs e)
           {
               ChildForm child = new ChildForm();
               child.TopLevel = false;
              child.Dock = System.Windows.Forms.DockStyle.Fill;
              child.FormBorderStyle = FormBorderStyle.None;
              //child.Parent = this.panel1;
              this.panel1.Controls.Add(child);
              child.Show();
           }
OK
这是我第一次写关于技术的文章.希望大家多多支持.
本人文笔不好,多多包含.

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【原创】C#如何自定义代码模版发布时间:2022-07-10
下一篇:
一个人民币大小写转换的c#代码(两年前写的)发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap