C# Winform内嵌窗体(在主窗体上显示子窗体)

        在开发Winform项目中,经常会要切换不同的窗体。通常程序都有一个主窗体,在切换窗体时往往需要关闭其他子窗体,这个实例就来介绍MDI主窗体内嵌子窗体的实现方法。

MDI主窗体要设置一个比较重要的属性,IsMdiContainer=true。子窗体的 formChild.MdiParent设置成为主窗体。

        public MainForm()
        {
            InitializeComponent();
            //设置改窗体为MDI容器(多文档界面容器),可嵌入多个子窗体
            this.IsMdiContainer = true;
        }

        /// <summary>
        /// 通过子窗体名,打开子窗体
        /// </summary>
        /// <param name="childFromName"></param>
        /// <returns></returns>
        private void OpenChildFrom(string childFromName)
        {
            bool bHave = false;
            //子窗体已存在 则打开
            foreach (Form formChild in this.MdiChildren)
            {
                if (formChild.Name == childFromName)
                {
                    formChild.MdiParent = this;
                    formChild.Activate();
                    formChild.StartPosition = FormStartPosition.Manual;
                    //填满主窗体空间
                    formChild.Dock= DockStyle.Fill;
                    formChild.Show();
                    bHave = true;
                }
                else
                {
                    formChild.Hide();
                }
            }
            //子窗体不存在 创建并打开
            if (bHave == false)
            {
                Form formChild = InitializeFormByName(childFromName);
                if (formChild != null)
                {
                    formChild.MdiParent = this;
                    formChild.StartPosition = FormStartPosition.Manual;
                    //填满主窗体空间
                    formChild.Dock = DockStyle.Fill;
                    formChild.Show();
                }
            }
        }

程序实例链接:https://download.csdn.net/download/lvxingzhe3/89422924

相关推荐

  1. D365 调用父方法

    2024-06-12 07:20:05       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-12 07:20:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-12 07:20:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-12 07:20:05       82 阅读
  4. Python语言-面向对象

    2024-06-12 07:20:05       91 阅读

热门阅读

  1. Oracle基本数据类型

    2024-06-12 07:20:05       32 阅读
  2. Oracle系统视图归纳总结及常用对象查询语句

    2024-06-12 07:20:05       33 阅读
  3. GIS之arcgis系列08:arcpy实现批量excel转矢量点

    2024-06-12 07:20:05       32 阅读
  4. uniapp使用webview内嵌H5的注意事项

    2024-06-12 07:20:05       35 阅读
  5. MFC四种方法编写多线程

    2024-06-12 07:20:05       30 阅读
  6. 使用net.sf.mpxj读取project的.mpp文件

    2024-06-12 07:20:05       32 阅读