随笔分类 -  winform

多线程导致CPU占用率过高
摘要:在winform项目开发中,尤其是上位机开发过程中,经常会使用多线程对设备数据进行读取。 例如新建一个线程对PLC数据读取,在读取时使用While(true)语句实现连续读取。 但是如果上述操作的线程多了就会导致CPU占用率过高,实例如下: 如上所述,新建5个线程,每个线程中都使用while (tr 阅读全文

posted @ 2023-04-19 11:12 hanzq_go 阅读(2325) 评论(0) 推荐(0) 编辑

窗体登录逻辑的实现2
摘要:之前在窗体登录逻辑的实现 - hanzq_go - 博客园 (cnblogs.com)中写过一个窗体登录逻辑的实现。 这种方式是在应用程序的入口将登录窗体以showdialog的方式显示,如果返回DialogResult.OK,则将主窗体设置为启动页。 这里再介绍另外一种登录逻辑的实现,原理如下: 阅读全文

posted @ 2023-01-07 00:09 hanzq_go 阅读(50) 评论(0) 推荐(0) 编辑

Panel容器中显示多个窗体并通过按钮实现窗体切换
摘要:Panel容器中显示多个窗体并通过按钮实现窗体切换 在项目开发中经常会有如下需求: 主窗体formMain中有个一Panle; 在Panel内显示多个窗体,如form1,form2……,分别通过不同按钮显示不同的窗体,如下所示: 按下打开Frm1按钮,显示frm1窗体的内容; 按下打开Frm2按钮, 阅读全文

posted @ 2023-01-06 21:20 hanzq_go 阅读(704) 评论(0) 推荐(0) 编辑

实现应用程序在一台电脑上只运行一个实例
摘要:在项目应用中,有时需要在一台PC上同一个只能运行一个实例,不允许运行2个或多个实例。 解决方案如下: 修改Program.cs中代码:如下: internal static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [ST 阅读全文

posted @ 2023-01-04 00:11 hanzq_go 阅读(248) 评论(0) 推荐(0) 编辑

窗体登录逻辑的实现
摘要:winform项目中通常需要登录窗体来打开主窗体的功能,实现逻辑如下: 程序启动→打开登录窗体→按下登录按钮→关闭登录窗体→打开主窗体。 实现代码如下: Program.cs中代码: static class Program { /// <summary> /// 应用程序的主入口点。 /// </ 阅读全文

posted @ 2023-01-04 00:04 hanzq_go 阅读(45) 评论(0) 推荐(0) 编辑

窗体的show方法和showDialog方法——非模态窗体和模态窗体
摘要:在C#中窗口的显示有两种方式:模态显示(showdialog)和非模态显示(show)。 简单地说他们的区别就是show弹出来的窗体和父窗体(上一个窗体的简称)是属于同一等级的,这两个窗体可以同时存在而且可以随意切换。 但是showdialog弹出来的窗体就不能这样,他永远是被置顶的,如果不关闭这个 阅读全文

posted @ 2022-12-13 15:34 hanzq_go 阅读(734) 评论(0) 推荐(1) 编辑

WinForm窗体应用——父窗体每次只打开一个子窗体的方法
摘要:C#在父窗口中调用子窗口的过程: 1、 创建子窗口对象 2、 显示子窗口对象 如图所示,点击Form1中的按钮,打开ChildFrm窗体。 第一种方案: private void btnOpenChildFrm_Click(object sender, EventArgs e) { ChildFrm 阅读全文

posted @ 2022-12-13 14:29 hanzq_go 阅读(2648) 评论(0) 推荐(1) 编辑

在线程中更新UI
摘要:为了更新UI线程,在新线程中用this.Invoke来更新UI上控件的值。 其实这背后是有异常的(有可能会在vs中报出来),因为当你关闭窗体时,this已经不存在了,但访问this.Invoke在新的线程中,新线程本身并没有关掉,这时就会报找不到实例而引发报错。 有可能运行起来并不会发现异常,这是因 阅读全文

posted @ 2022-10-24 15:04 hanzq_go 阅读(92) 评论(0) 推荐(0) 编辑

winform窗体程序适应不同的分辨率
摘要:如何让自己编写的winform窗体应用程序适应不同的分辨率 解决思路: 1、窗体加载时获取窗体的长x1和宽y1; 2、使用窗体的Resize()事件,当窗体尺寸发生变化时,获得窗体变化后的长x2和宽y2,将x2/x1得到kx,将y2/y1得到ky 3、遍历窗体中的所有控件,将控件的位置,大小,字体大 阅读全文

posted @ 2022-09-26 17:05 hanzq_go 阅读(1511) 评论(0) 推荐(1) 编辑

指示灯控件
摘要:using System; using System.Drawing; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace 指示灯 { public partial c 阅读全文

posted @ 2022-06-20 23:56 hanzq_go 阅读(95) 评论(0) 推荐(0) 编辑

Dictionary绑定到ComboBox显示值,实际值
摘要:private void TestAndSetForm_Load(object sender, EventArgs e) { Dictionary<string, string> dic = new Dictionary<string, string>(); BindingSource bs = n 阅读全文

posted @ 2022-06-20 23:18 hanzq_go 阅读(102) 评论(0) 推荐(0) 编辑

ComboBox刷新问题
摘要:ComboBox数据绑定刷新问题 问题描述: //第一次给comboBox.DataSource赋值 显示 的是正确 List<string> instrumentList = new List<string>() { "111111", "22222222", "333333" }; comboB 阅读全文

posted @ 2022-06-20 23:09 hanzq_go 阅读(507) 评论(0) 推荐(1) 编辑

WinForm添加项目文件(图片,音视频等)和动态调用
摘要:有的时候就一个简单的程序,不想搞的太多文件,就想把图片或音频一起编译到程序集里面,直接调用程序集里面的图片 1、添加项目文件 2、动态调用图片代码如下 Image img = Properties.Resources.err;//err是添加的图片名称 这个是调用打X的图片 Image img = 阅读全文

posted @ 2022-06-20 23:00 hanzq_go 阅读(375) 评论(0) 推荐(0) 编辑

WinFrom 窗体内嵌子窗体
摘要:需要展示的效果如下 Form1代码如下: using System; using System.Windows.Forms; namespace Winfrom技巧 { public partial class Form1 : Form { public Form1() { InitializeCo 阅读全文

posted @ 2022-06-20 20:51 hanzq_go 阅读(85) 评论(0) 推荐(0) 编辑

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示