当前位置: 首页 > news >正文

武进网站建设怎么样网站建设入固定资产

武进网站建设怎么样,网站建设入固定资产,工作室 网站 备案,北京 一图看懂 最新一、简介 在 Winform 开发中,多窗体的切换是一个常见的需求,比如登录成功后,切换至主界面,在网上查阅相关的资料,你会发现很多都是用 form2.Show(); this.Hide(); 这种方式,这种方式也存在一些问题&#…

一、简介

在 Winform 开发中,多窗体的切换是一个常见的需求,比如登录成功后,切换至主界面,在网上查阅相关的资料,你会发现很多都是用 form2.Show();  this.Hide(); 这种方式,这种方式也存在一些问题,因为 Winform 存在一个主线程概念,如果主线程关闭,那么当前软件所有的窗体都会随之关闭,你也可以使用其他的方式,让界面继续显示,但整体上不是特别的优雅,这里推荐两种方式,1.在 Form1 里面加载用户控件,并实时改变 Form1 界面大小和用户控件保持一致,2.用一个窗体作为主线程启动,启动后隐藏界面,添加一个窗体管理类来实现其他的窗体的关闭和显示,如果最后一个显示的窗体关闭了,就关闭主线程退出程序,本篇文章我就使用第一种方式来实现效果。

效果:

二、实现效果

新建一个 Winform 项目,Form1 如下:

这里添加了背景颜色,主要作用是在后面切换用户控件时,观察是否严丝合缝。

添加了一个按钮,这个按钮用来切换用户控件。

另外,添加了三个用户控件:

1.Login

模拟登录界面

代码:

using System;
using System.Windows.Forms;namespace Winform多窗体切换
{public partial class Login : UserControl{public Login(){InitializeComponent();this.ParentChanged += MyUserControl_ParentChanged;}private void Login_Load(object sender, EventArgs e){//Console.WriteLine($"Login 宽度:{this.Size.Width},高度:{this.Size.Height}");Console.WriteLine("登录界面 Login_Load 方法");}private void MyUserControl_ParentChanged(object sender, EventArgs e){// 检查控件是否被移除if (this.Parent == null){// 在这里添加你的清理代码,例如,释放托管资源,取消事件订阅等Console.WriteLine("登录界面 Disposed 方法");}else{//在 Form1 添加当前用户控件时,这里会被执行Console.WriteLine("登录界面 Parent Changed: New Parent = " + this.Parent.Name);}}}
}

由于用户控件没有 FormClosing 方法,这里订阅 ParentChanged 方法来实现这一效果,我试着订阅其他很多方法,都没有效果。

2.Setting

模拟设置界面

这里添加了四个按钮,用来判断用户控件是否显示完整

代码:

using System;
using System.Windows.Forms;namespace Winform多窗体切换
{public partial class Setting : UserControl{public Setting(){InitializeComponent();}private void Setting_Load(object sender, EventArgs e){//Console.WriteLine($"Setting 宽度:{this.Size.Width},高度:{this.Size.Height}");Console.WriteLine("设置界面 Login_Load 方法");}}
}

3.Main

用来模拟主界面

代码:

using System;
using System.Windows.Forms;namespace Winform多窗体切换
{public partial class Main : UserControl{public Main(){InitializeComponent();}private void Main_Load(object sender, EventArgs e){//Console.WriteLine($"Main 宽度:{this.Size.Width},高度:{this.Size.Height}");Console.WriteLine("Main 界面 Main_Load 方法");}}
}

Form1 代码:

using System;
using System.Drawing;
using System.Windows.Forms;namespace Winform多窗体切换
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private int Index = 0;//高度页边距private int WidthMargins = 16;//高度页边距(无边框则为0)private int HeightMargins = 39;private void Form1_Load(object sender, EventArgs e){}private void Form1_FormClosing(object sender, FormClosingEventArgs e){}private void button1_Click(object sender, EventArgs e){Index++;//防止测试按钮被移除foreach (Control c in this.Controls){if (c.Name != "button1")this.Controls.Remove(c);}if (Index == 1){Login login = new Login();this.Controls.Add(login);this.Size = new Size(login.Width + WidthMargins, login.Height + HeightMargins);}else if (Index == 2){Main main = new Main();this.Controls.Add(main);this.Size = new Size(main.Width + WidthMargins, main.Height + HeightMargins);}else if (Index == 3){Setting setting = new Setting();this.Controls.Add(setting);this.Size = new Size(setting.Width + WidthMargins, setting.Height + HeightMargins);}if (Index >= 3)Index = 0;}}
}

运行:

源码不需要积分和付费哦

https://download.csdn.net/download/qq_38693757/89627203

结束

如果这个帖子对你有所帮助,欢迎 关注 + 点赞 + 留言

end

http://www.yayakq.cn/news/653859/

相关文章:

  • 排名好的郑州网站建设公司建设网站时的注意事项
  • 个人做的网站能备案吗推动品牌建设的网站
  • 在农村做相亲网站怎么样如何查询一个网站是那家公司做的
  • 图片站手机网站怎么做的wordpress电商支付宝微信
  • 在谷歌上网站推广搭建漏洞网站
  • 河南省百城建设提质网站推广优化公司网站
  • 网站建设方案情况汇报企业网站备案资料
  • 闽侯做网站上海中学门户网站登陆
  • 广州公司建站目前国际电商平台有哪些
  • 前端代码做招新网站优购物官方网站地址
  • 12306网站开发时间房屋 哪个网站做的最好
  • 乐陵网络推广seo优化苏州seo公司
  • 如何解决网站兼容站长之家官网查询
  • 什么网站上公司的评价最客观wordpress 没关插件
  • 制作公司网站多少钱网站内容建设 内容审核流程
  • 什么网站有项目做网站运营条件
  • 网站建设步骤的论文互联网最好的公司
  • 网站后台代码如何做织梦网站怎么做404页面模板
  • 找考卷做要去哪个网站汕头建站模板厂家
  • 黑龙江建设网网站长春网站制作都找源晟27
  • 盘锦门户网站制作wordpress下拉式菜单
  • 在线购物商城网站建设网站游戏网站开发设计菲律宾
  • 《电子商务网站建设》精品课天津智能网站建设多少钱
  • 手机自助建站平台dw怎么做网站轮播图
  • 电商网站价格监控梅州市城乡建设部网站首页
  • 3d渲染网站建设wordpress 前端构建
  • 哪些做调查问卷的网站怎么屏蔽优酷网站的广告
  • 东莞广告网站建设合肥网站建设久飞
  • 网站建设项目资金申请报告网页设计基础课程设计问题反馈
  • 长沙网红美食网站优化培训机构