
C#
文章平均质量分 50
妖气当然你
这个作者很懒,什么都没留下…
展开
-
C#动态生成控件并布局
FlowLayoutPanel flowLayoutPanel; private void Form1_Load(object sender, EventArgs e) { flowLayoutPanel = new FlowLayoutPanel(); flowLayoutPanel.BackColor = Color.Red; flowLayoutPanel.Location = n...原创 2021-06-11 15:34:40 · 5223 阅读 · 1 评论 -
C#连接阿里云ESC的mysql数据库
server = "47.103.212.**"; database = "grist_top"; uid = "grist_top"; password = "***"; string constr = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD="...原创 2021-04-22 13:29:23 · 1120 阅读 · 2 评论 -
DockPanel页面回转
问题:如果在DockPanel再次打开已经打开的页面,自动跳转到哪个已经打开的页面中;关键代码: content.DockHandler.Activate();方法一:在dockPanel控件中遍历已经的开得窗体,根据比对窗体的Text确定是否打开,若打开,则跳转到已经打开的窗体中 DockContent dockContent = new frmSetData(); bool flag = false; fo.原创 2021-04-14 14:36:07 · 284 阅读 · 0 评论 -
C#chart表格
#region 表格参数设置 //ChartArea chartArea = chart1.ChartAreas[0]; //表格标题内容 Title title = new Title(); title.Font = new System.Drawing.Font("宋体", 12F); title.Text = "压机曲线波动分析"; ...原创 2021-02-20 11:03:46 · 3402 阅读 · 0 评论 -
C#之放入透明背景字体(label标签的透明设置)
如果想使用Winform仅仅把字体放入控件或者图片上要怎么办?问题?解决结果:两种办法?1、label标签设置透明度,但是不是单单设置一下Transparent你就可以达到你的目的了,你还需要设置一下label的Parent并且指定她相对于父窗体的Location才行。2、使用Graphics类库画出来你的字,给个合适的定位点就可以了。下面贴出测试代码: public Form1() { InitializeComponent()原创 2020-11-27 08:10:54 · 5373 阅读 · 1 评论 -
C#代码安全性解决即代码加密处理
1、异或加密数字//加密textBox2.Text = (Convert.ToInt32(textBox1.Text) ^ 123).ToString();//解密 textBox1.Text = (Convert.ToInt32(textBox2.Text) ^ 123).ToString();2、伪随机数加密与解密 //定义加密用户密码所用的伪随机数 private string randStr = "ABCDEFGHIJKLMNOPQRSTUVW...原创 2020-11-23 16:32:39 · 919 阅读 · 0 评论 -
C#之Invoke与BeginInvoke即控件值实时更新
在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法是错误 的做法,Invoke 和 BeginInvoke 就是为了解决这个问题而出现的,使你在多线程中安全的更新界面显示。我们将工作线程中涉及更新界面的代码封装为一个方法,通过 Invoke 或者 BeginInvoke 去调用。如果从线程外操作windows窗体控件,那么就需要使用Invoke或者BeginInvoke方法,通过一个委托把调用封送到控件所属的线程上执行。实例:使用While读取PLC的值显示到面板中原创 2020-10-10 14:15:39 · 3596 阅读 · 0 评论 -
C#序列化与反序列化
定义:序列化是指将对象转换成字节流,从而存储对象或将对象传输到内存、数据库或文件的过程。它的主要用途是保存对象的状态,以便能够在需要时重新创建对象。反向过程称为“反序列化”。通过序列化,可以保存对象的状态,并能在需要时重新创建对象,同时还能存储对象和交换数据。通过序列化,可以执行如下操作:使用 Web 服务将对象发送到远程应用程序 将对象从一个域传递到另一个域 将对象通过防火墙传递为 JSON 或 XML 字符串 跨应用程序维护安全或用户特定的信息工作原理:将对象序列化为带有数...原创 2020-09-23 11:51:45 · 201 阅读 · 0 评论 -
三菱PLC通信(MC协议A-1E和Qna-3E模式)
Demo利用MC协议的A-1E模式,使用ASCII进行通信,基本实现int、float、bit的单点及批量的读写测。试,及利用异步监视PLC某点值的变化,使用PLC 的脉冲模拟数据的变化。代码编写未使用OOP思想,后期需要进行代码的优化...原创 2020-10-30 09:54:33 · 22501 阅读 · 10 评论 -
C#进制转换
private void button1_Click(object sender, EventArgs e) { float value = 0.1f; string hex = string.Empty; ShowFloatToHex(ref value, ref hex); ShowHexToFloat(ref hex, ref value); string inp.原创 2020-09-17 14:59:25 · 714 阅读 · 0 评论 -
C#TimeSpan和DataTime及应用于程序段运行时间监视
1、最简单的方法,直接输出语句执行前和执行后的当前时间Console.Write("程序开始时间:"+DateTime.Now);//语句块Console.Write("程序结束时间" + DateTime.Now);2、原创 2020-09-10 09:28:27 · 1196 阅读 · 0 评论 -
sharp7读写PLC数据
private void ConnectBtn_Click(object sender, EventArgs e) // 连接PLC { int Result = 1; int Rack = System.Convert.ToInt32(TxtRack.Text); int Slot = System.Convert.ToInt32(TxtSlot.Text); Result ...原创 2020-08-27 13:47:22 · 6556 阅读 · 1 评论 -
C#线程间传值以及线程的开始-暂停-与启动
一 、ThreadStartThreadStart中的函数是没有返回值和参数的,如果需要传值就需要构造函数传值了1、通过构造函数传递参数MyClass obj = new MyClass(a,b);Thread t = new Thread(new ThreadStart(obj.ThreadMethod));t.Start();2、通过对象的属性传递参数MyClass obj = new MyClass();obj.a = a;obj.b = b;Thread t .原创 2020-09-23 11:58:40 · 1394 阅读 · 0 评论 -
C#利用委托与事件在窗体件进行传值
首先定义委托SendValue和事件send_event,然后看代码吧!窗体2定义了一个label来接收传来的值。 public delegate void SendValue(string a); public event SendValue send_event; private void Form1_Load(object sender, EventArgs e) { Form2 form2 = new F.原创 2020-08-20 14:13:18 · 331 阅读 · 0 评论 -
C#事件与委托——添加日志记录
注释已经写到代码当中using System;using System.IO;/*本实例提供一个简单的用于热水锅炉系统故障排除的应用程序。 * 当维修工程师检查锅炉时,锅炉的温度和压力会随着维修工程师的备注自动记录到日志文件中。*/namespace LogWrite{ // boiler 类 /// <summary> /// 获取参数与输出参数 /// </summary> class Boiler { .原创 2020-08-20 09:50:34 · 872 阅读 · 0 评论 -
C#关于定时器的使用
在C#里关于定时器类就有三个1、System.Windows.Forms.Timer2、System.Threading.Timer3、定义在System.Timers.Timer下面对这三个类进行讲解。System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中 的Timer控件,内部使用API SetTimer实现的。它的主要缺点是计时不精确,而且必须有消息循环,Console Application原创 2020-09-23 11:27:24 · 1006 阅读 · 0 评论 -
C#进程与线程学习笔记
using System;using System.Collections.Generic;using System.Dynamic;using System.Text;using System.Threading; //Thread类using System.Diagnostics; // Process类namespace Threat{ class Program { /// <summary> /// .原创 2020-08-11 14:34:34 · 235 阅读 · 0 评论 -
C#委托与事件
1、委托通过定义委托和事件可以方便方法重用,并提高程序的编写效率。C# 中的委托类似于 C 或 C++ 中函数的指针。委托是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。委托分为命名方法委托、多播委托、匿名委托。命名方法委托:实例化委托时同时传递方法,然后调用委托执行时传递参数。 多播委托指在一个委托中注册多个方法,在注册方法时可在委托中使用加号运算符或者减号运算符来实现添加或撤销方法。 匿名委托是指使用匿名方法注册在委托上,实际上是在委托中通过定义代码块来实现委托的作用。.原创 2020-08-11 10:42:12 · 213 阅读 · 0 评论 -
Sharp7读写数据API
ReadAreaDescriptionThis is the main function to read data from a PLC.With it you can read DB, Inputs, Outputs,Merkers, Timers and Counters.DeclarationReadArea(S7Consts.S7AreaDB, 5, 2, 1, 0x01, Buffer).ToString()publicintReadArea(intArea,int...原创 2020-07-31 13:20:23 · 3413 阅读 · 1 评论 -
C#设置窗体控件自适应
(1)dock或者anchor,命令控件在调整大小时动作的两个属性就是“Dock”和“Anchor”。为每个控件设置anchor是可行的。Dock和Anchor通过将控件连接到它们父窗体的某个位置,而免除了使应用程序具有不可预知界面的麻烦。最好的一点就是设立这些属性不需要任何手写代码。所有事情都可以通过Visual Studio IDE中的点和单击来完成。Anchor属性。当控件锚定到某个窗体时,如果该窗体的大小被调整,那么该控件维持它与定位点位置之间的距离不变。如果你没有指定一个控件有左或右锚原创 2020-07-30 11:15:11 · 1637 阅读 · 0 评论 -
C#枚举类型绑定到ComboBox并取值使用
方法一:枚举类型直接绑定enum TestEnum { zero=0, one=1, two=2 }ComboBox cbo = new ComboBox();cbo.DataSource = System.Enum.GetNames(typeof(TestEnum));TestEnum test = TestEnum .one;cbo.SelectedIndex=this.cbo.FindString(test.ToStri...原创 2020-07-29 12:35:08 · 5409 阅读 · 1 评论 -
VS类库生成与调用和打包程序
在 Visual Studio 中创建 .NET Standard 库:https://docs.microsoft.com/zh-cn/dotnet/core/tutorials/library-with-visual-studioC# 生成类库并引用的教程进行单元测试:https://docs.microsoft.com/zh-cn/dotnet/core/tutorials/testing-library-with-visual-studio使用 Visual Studi...原创 2020-07-28 15:34:11 · 902 阅读 · 0 评论 -
在 Visual Studio 中创建 .NET Standard 库(生成自己的类库)
Microsoft参考文档链接 在本教程中,将创建包含一个字符串处理方法的简单实用工具库。我们把它作为扩展方法进行实现,这样就可以把它作为String类成员进行调用。 类库定义的是可以由应用程序调用的类型和方法。借助面向 .NET Standard 2.0 的类库,任何支持相应 .NET Standard 版本的 .NET 实现都可以调用库。完成类库后,可以将其作为第三方组件进行分发,也可以作为与一个或多个应用程序捆绑在一起的组件进行分发。 先决条件 创建解决...原创 2020-07-28 14:25:33 · 4246 阅读 · 0 评论 -
斑马打印机测试demo,一维码、二维码、字符串。可以保存创建模板以便于后续使用
利用RawPrinterHelper和Smt.Zebra两种方式进行打印控制using Smt.Zebra;using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Drawing.Printing;using System.IO;using System.Linq;using Sy.原创 2020-07-07 08:17:29 · 4064 阅读 · 0 评论 -
发送ZPL指令到斑马打印机,并监控打印成功或者失败的状态信息
本文共分为两个部分:第一部分:介绍如何与Zebar进行连接,把ZPL指令或者模板文件发送到斑马打印机进行打印。第二部分:介绍如何接收Zebar进行打印之后如何得到斑马打印机的反馈信息,防止打印出错的情况下继续进行工业的操作。需要用上位机得到打印出错的信息,然后反馈给PLC。一、C# 将指令发送到Zebar打印机的方式发送ZPL到打印机的参考链接Zebra Technologies (GitHub Demo)C#控制打印的Demo1、利用winspool打印机库函数(LPT,US.原创 2020-07-25 15:32:43 · 14787 阅读 · 7 评论 -
发送ZPL指令到斑马打印机的RawPrinterHelper类
using System;using System.Drawing;using System.Drawing.Printing;using System.Windows.Forms;using System.Runtime.InteropServices;public class RawPrinterHelper{//Structure and API declarions: [StructLayout(LayoutKind.Sequential, CharSet=CharSet.An..原创 2020-07-25 11:31:39 · 2199 阅读 · 0 评论 -
C#控制利用模板文件通过BarTender控制斑马打印机打印
重点在后面:https://blog.youkuaiyun.com/z_344791576/article/details/46328443?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159546478119725219951536%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=15954647811972521995原创 2020-07-23 10:22:47 · 2719 阅读 · 1 评论 -
C#异步编程之Async和Await
异步与多线程练习先放一个爬取图片的局部截图异步多线程爬取图片,输入指定爬取网址的基URL,爬取此URL的HTML,保存其中的jpg和PNG图片,同时以基URL为第一层深度,过滤爬取第一层深度URL内包含基URL的所有网址(为第二层深度),把其保存到数组当中,并分别爬取第二层所有网址的jpg和png图片,以此类推。深度和基url在文本框内输入。因此可以爬遍无限制的图片网站,因此你懂的~~~~此项目未添加登录信息的cookie,所以对于一些需要登录才能保存高清图片的网站有一些限制,后续会完.原创 2020-09-23 11:33:16 · 316 阅读 · 0 评论 -
C#之面向对象设计
面向对象设计的总体思路是将数据及处理这些数据的操作封装到类这样的数据结构当中,在程序中使用的是类的实例,即对象。对象是一个封装好的代码和数据的集合,程序就是由一个个对象构成的,对象之间通过“一定的相互操作”传递信息,在消息的作用下完成特定的功能。类:具有相同性质和功能的事务构成的整体,也可以把具有相同内部存储结构和相同操作对象看成同一个类。属性:即对象的特点和状态,例如学生类的...原创 2019-05-08 11:55:58 · 466 阅读 · 0 评论