11 2022 档案

窗体传参的方法
摘要:在上位机软件开发中经常会遇到需要在两个或多个窗体之间传递参数的问题。 比如,在参数输入时,弹出一个窗体输入要写入plc的数据,然后点击确认完成输入。 如下所示,在窗体Form1中,双击textbox控件,弹出窗体2,输入相应的数据并确认后,窗体1中的textbox控件显示窗体2中输入的数据。 实现这 阅读全文

posted @ 2022-11-30 10:40 hanzq_go 阅读(124) 评论(0) 推荐(0) 编辑

TreeView控件
摘要:TreeView控件,是一个树形集合控件 常见属性:CheckBoxes、ImageList、ImageIndex、ImageKey、Indent、ItemHeight、LineColor、Nodes、ShowLines、ShowPlusMinus、ShowRootLines TreeNode:Na 阅读全文

posted @ 2022-11-25 23:16 hanzq_go 阅读(288) 评论(0) 推荐(0) 编辑

Dialog控件(FontDialog,ColorDialog,OpenFIleDialog,SaveFileDialog,FolderBrowserDialog)的使用方法
摘要:FontDialog,ColorDialog,OpenFIleDialog,SaveFileDialog,FolderBrowserDialog控件的使用 打开控件并获得返回值的方法如下,以OpenFIleDialog为例: private void button1_Click(object sen 阅读全文

posted @ 2022-11-25 11:58 hanzq_go 阅读(141) 评论(0) 推荐(0) 编辑

基于C#实现文本读取的方法
摘要:这里介绍文本读取常用的方法,主要是采用FileStream或StreamReader进行文件读取,使用的界面如下: 代码如下: using System; using System.IO; using System.Text; using System.Windows.Forms; namespac 阅读全文

posted @ 2022-11-25 11:52 hanzq_go 阅读(1450) 评论(0) 推荐(0) 编辑

多线程的启/停,暂停和恢复
摘要:多线程的启动停止 线程的启动停止,从.Net Framework 4.5开始,Task提供了一个叫CancellationTokenSource的对象,可以使用它来对多线程的启停进行控制。 首先,我们做一个线程任务,这个任务很简单,只是不断操作某个变量,每0.1秒加1,到一定值之后,重置为0,然后将 阅读全文

posted @ 2022-11-25 09:42 hanzq_go 阅读(555) 评论(0) 推荐(0) 编辑

NModbus4项目4——数据的读写框架
摘要:上位机与PLC之间进行数据读写时一般采用两种方式, 一种是使用定时器进行读,一种是使用一个独立的线程进行读, 但是无论使用哪种方式,都要求写优先级高于读,这里就涉及到读写状态切换。 写数据时,暂停读,切换到写状态,数据写完,再切换到读状态。 具体实现方式如下: 第一种方式:使用定时器读写 第一步:建 阅读全文

posted @ 2022-11-24 16:36 hanzq_go 阅读(1331) 评论(0) 推荐(0) 编辑

数组的一些常用方法
摘要:1、获取数组中一段连续的数据组成一个新的数组,如下所示: static void Main(string[] args) { int[] data = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int[] i1 = data.Skip(0).Tak 阅读全文

posted @ 2022-11-23 16:34 hanzq_go 阅读(37) 评论(0) 推荐(0) 编辑

多个线程交替执行的方法
摘要:如何实现多个线程交替执行。 这个例子中以三个线程交替执行为例子,使用AutoResetEvent来控制线程的中断。 using System; using System.Threading; using System.Threading.Tasks; using System.Windows.For 阅读全文

posted @ 2022-11-22 12:10 hanzq_go 阅读(209) 评论(0) 推荐(0) 编辑

NModbus4项目3——异步读写数据的方法
摘要:使用NModbus4进行一部数据读取。 以读寄存器数据和写寄存器数据为例,其他功能的使用方法类似。 读寄存器数据: ushort[] datas = new ushort[8]; Task<ushort[]> t = Task.Run(async () => { return await maste 阅读全文

posted @ 2022-11-22 12:04 hanzq_go 阅读(2489) 评论(0) 推荐(0) 编辑

使用Stopwatch统计程序执行时间
摘要:编程时,常常需要统计某段程序执行的时长,可以使用以下方法: Stopwatch sw = Stopwatch.StartNew(); sw.Start(); //需要执行的程序片段 sw.Stop(); Console.WriteLine("运行时间:"+sw.ElapsedMilliseconds 阅读全文

posted @ 2022-11-21 14:00 hanzq_go 阅读(184) 评论(0) 推荐(0) 编辑

NModbus4项目2——模拟量数据的读取与显示
摘要:PLC中常用的数据类型分别是: 1、布尔量 2、整数,16位,整数为有符号数,最高位为符号,1表示复数,0表示正数,范围:-32768~32767; 3、浮点数,32位,用来表示小数 由于NModbus4读取到寄存器的数据都是ushort类型,因此读数据时需要将转ushort换成整数或者浮点数,或者 阅读全文

posted @ 2022-11-18 16:13 hanzq_go 阅读(1882) 评论(0) 推荐(0) 编辑

NModbus4项目1——使用NModbus进行简单的线圈和寄存器的读写操作
摘要:准备工作: 1、增加一对虚拟串口,COM4和COM5,如下所示: 2、使用Modbus Slave软件建立3个数据区,从左到右分别是线圈,寄存器(存放整数),寄存器(存放浮点数) Modbus Slave的站地址为1,其他信息如下: 步骤1、创建一个串口 首先添加引用,using System.IO 阅读全文

posted @ 2022-11-16 14:40 hanzq_go 阅读(5882) 评论(0) 推荐(0) 编辑

WinForm中的多线程
摘要:使用BeginInvoke或Invoke 作用 在自己创建的非UI线程中,进行UI操作,比如更新UI上控件的状态。 Windows 窗体中的控件被绑定到特定的线程,不具备线程安全性。因此,如果从另一个线程调用控件的方法,那么必须使用控件的一个 Invoke 方法来将调用封送到适当的线程。 如果已经创 阅读全文

posted @ 2022-11-09 12:15 hanzq_go 阅读(808) 评论(0) 推荐(0) 编辑

DataGridView应用
摘要:DataGridView应用: 应用1:将获取的行数据保存到实体 private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e) { //获取行数据并转化为实体 Student stude 阅读全文

posted @ 2022-11-08 15:15 hanzq_go 阅读(73) 评论(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
点击右上角即可分享
微信分享提示