zoukankan      html  css  js  c++  java
  • 在主窗体Panel中添加新的窗体(C#,winform开发)

    本文的要写的是如何将窗体(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
    这是我第一次写关于技术的文章.希望大家多多支持.
    本人文笔不好,多多包含.
  • 相关阅读:
    Web开发框架 SSH 简介
    H5 性能调优 工具
    Mongodb性能调优
    峰Redis学习(4)Redis 数据结构(List的操作)
    峰Redis学习(3)Redis 数据结构(字符串、哈希)
    峰Redis学习(2)Jedis 入门实例
    峰Redis学习(1)Redis简介和安装
    使用jquery.mCustomScrollbar自定义滚动条(2)
    使用jquery.mCustomScrollbar自定义滚动条(1)
    jquery zTree异步搜索的例子--搜全部节点
  • 原文地址:https://www.cnblogs.com/dabaopku/p/1821767.html
Copyright © 2011-2022 走看看