WinForm下实现子窗体

news/2024/10/6 10:35:08

如果想要实现在同一个Form下的子窗体切换,下面的方法可以实现。

  1. 窗体设计,如图

  2. 增加子窗体。鼠标右键项目,选择添加,选择用户控件

  • 注意修改用户控件的大小尺寸,和GroupBox的尺寸匹配。
  1. 建立好子窗体后,在主Form里面先声明各个子窗体类,如下:
        //定义用户窗口变量public windows1 w1;public windows2 w2;public windows3 w3;public windows4 w4;
  1. 在加载主Form事件时选择实例化各个子窗体类
        //加载时赋值private void Form1_Load(object sender, EventArgs e){//实例化w1 = new windows1();w2 = new windows2();    w3 = new windows3();    w4 = new windows4();}
  1. 为每个要显示子窗体创建一个按钮,目的是点击按钮切换至子窗体
        //output_funpublic void output_fun(string str){textBox1.AppendText(DateTime.Now.ToString()+ ":" + str + "\r\n");}//显示用户窗口1private void button1_Click(object sender, EventArgs e){w1.Show();groupBox1.Controls.Clear();groupBox1.Controls.Add(w1);output_fun("show windows1");           }//显示用户窗口2private void button2_Click(object sender, EventArgs e){w2.Show();groupBox1.Controls.Clear();groupBox1.Controls.Add(w2);output_fun("show windows2");}//显示用户窗口3private void button3_Click(object sender, EventArgs e){w3.Show();groupBox1.Controls.Clear();groupBox1.Controls.Add(w3);output_fun("show windows3");}//显示用户窗口4private void button4_Click(object sender, EventArgs e){w4.Show();groupBox1.Controls.Clear();groupBox1.Controls.Add(w4);output_fun("show windows4");}
  1. 至此,一个最简单创建子窗体的方法就完成了。
  • 如果有需要把子窗体里面的变量值传到主程序里面
    • 用委托
    • 子窗体内做一个返回值(或者元组)的方法
    • 建立一个单独的静态类专门用来读写值
    • 用json或者yaml做变量管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/28494.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

c# 多线程的几种方式 【转载】

1.什么是线程? 进程作为操作系统执行程序的基本单位,拥有应用程序的资源,进程包含线程,进程的资源被线程共享,线程不拥有资源。2.前台线程和后台线程的区别? 程序关闭时,后台线程直接关闭,但前台线程会执行完后关闭。 通过Thread类新建线程默认为前台线程。其他方式创建…

01选择排序

01选择排序 1.选择排序含义每次选择最小的,放到左侧。持续进行。2.示例代码: def selectionSort(arr):for i in range(len(arr) - 1):# 记录最小数的索引minIndex = ifor j in range(i + 1, len(arr)):if arr[j] < arr[minIndex]:minIndex = j# i 不是最小数时,将 i 和最…

Luminar Neo 1.19.0 (macOS Universal) - 创新 AI 图像编辑器

Luminar Neo 1.19.0 (macOS Universal) - 创新 AI 图像编辑器Luminar Neo 1.19.0 (macOS Universal) - 创新 AI 图像编辑器 利用尖端的人工智能生成技术,轻松增强照片效果 请访问原文链接:Luminar Neo 1.19.0 (macOS Universal) - 创新 AI 图像编辑器,查看最新版。原创作品,…

Burp Suite Professional 2024.4 for Windows x64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2024.4 for Windows x64 - 领先的 Web 渗透测试软件Burp Suite Professional 2024.4 for Windows x64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接:Burp Suite Professional 2024.4 for Windows x64 - 领先的 Web 渗…

Burp Suite Professional 2024.4 for macOS x64 ARM64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2024.4 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件Burp Suite Professional 2024.4 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接:Burp Suite Professional 2024.4 for macOS …

为什么会查询不到DNS信息?怎么排查?

DNS(域名系统)是将域名转换为相应 IP 地址的关键系统。查询 DNS 信息具有重要作用,通过查询 DNS 信息,我们可以知道域名对应的 IP 地址,这是最主要的信息,使设备能与目标服务器进行通信;其次是域名的相关记录,如 MX 记录(邮件交换记录)等,了解与邮件服务相关的信息;…

【动画进阶】巧用 CSS/SVG 实现复杂线条光效动画

最近,群里在讨论一个很有意思的线条动画效果,效果大致如下:简单而言,就是线条沿着不规则路径的行进动画,其中的线条动画可以理解为是特殊的光效。 本文,我们将一起探索,看看在不使用 JavaScript/Canvas 的基础上,使用纯 CSS/SVG 的方式,我们可以如何大致的还原上述的线…

mysql查询语句数组下标截取

#["广东省","汕头市","龙湖区"]SELECT a.`register_address` AS 工商地址,a.`dismantle_address`, REPLACE (dismantle_address->$[0],",) AS 省,REPLACE (dismantle_address->$[1],",) AS 市,REPLACE (dismantle_address->$…