
C# winform
幻世顽灵
这个作者很懒,什么都没留下…
展开
-
c# chart缩放,局部放大
效果:左键划选放大区域,右键恢复 /// <summary> /// 初始化,传入要进行初始化的chart /// </summary> /// <param name="chart1"></param> public static void InitChart (System.Windows.Forms.DataVisualization.Charting.Chart ch.原创 2021-04-20 16:05:04 · 10920 阅读 · 2 评论 -
RGB颜色过度,数值转颜色
在网上找了一些都不行,只能自己用最笨的方法写一个了using System;using System.Collections.Generic;//using System.Drawing;using System.Windows.Media;using System.Linq;using System.Text;using System.Threading.Tasks;namespace WpfApplication2{ class 颜色过度 { //原创 2021-04-15 16:17:28 · 761 阅读 · 0 评论 -
C# WebClient几种常用方法的用法
1、UploadData方法(Content-Type:application/x-www-form-urlencoded)//创建WebClient 对象WebClient webClient = new WebClient();//地址string path = "http://******";//需要上传的数据string postString = "username=***&password=***&grant_type=***";//以form表单的形式上传we转载 2021-04-12 12:09:00 · 5074 阅读 · 0 评论 -
c# HTTP Post上传文件与表格 ContentType = “multipart/form-data“
新建HttpUpload.Core项目UploadParameterType类 public static class HttpCode { /// <summary> /// 上传超时项 /// </summary> public static string ResponseTimeout = "-1624"; } /// <summary> /// 上传文件原创 2021-03-10 17:55:01 · 1862 阅读 · 0 评论 -
c# 任务定时器
使用场景 :接收连续的数据,当数据停止传输超过1秒时,算作1包,进行处理定时器类/// <summary>/// 定时器,用于在计时结束后执行指定方法/// </summary>public static class TimerOperate{ /// <summary> /// 开始/重置时间,到时间执行事件,重复执行可延长时间 /// </summary> /// <param name="t"&g.原创 2020-11-03 15:06:51 · 293 阅读 · 0 评论 -
c# dataGridView
/// <summary>/// DataGridView设备列表/菜单,初始化状态/// </summary>/// <param name="dataGridView1"></param>/// <param name="strarr">显示的标题</param>public static void InitDeviceListToDataGridView(DataGridView dataGridView1, stri.原创 2020-10-28 17:23:38 · 363 阅读 · 0 评论 -
NPOI简单读写 使用方法
添加npoi点击 工具->NuGet程序包管理器->管理解决方案的NuGet程序包->联机搜索 NPOI,点击安装即可读取Excel转DataTable的类using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;namespace NPOI读取excel{ class NpoiOperateExcel { /// <.原创 2020-09-06 18:32:36 · 1369 阅读 · 0 评论 -
c# 打开指定程序并最小化指定程序
public partial class Form1 : Form{ [DllImport("user32.dll", EntryPoint = "PostMessage")] public static extern int PostMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); [DllImport("User32.dll ", EntryPoint = "FindWindow")] private s.原创 2020-07-20 12:01:37 · 3311 阅读 · 0 评论 -
c# 软件按键输入事件 重写 ProcessCmdKey
/// <summary> /// 当焦点在这个软件时,输入的按键会经过此函数/// 将屏蔽Alt+Tab/// </summary> /// <param name="msg"></param> /// <param name="keyData"></param> /// <returns></returns> protected .原创 2020-07-17 12:02:58 · 1108 阅读 · 0 评论 -
VS中 用XML转为类的方法
将完整的XML文本复制下来新建一个类,将光标放在准备粘贴的位置点击VS左上角的 [编辑] - [选择性粘贴] - [将XML粘贴为类]注:如果没有 [将xml粘贴为类] 的选项,右键将 项目-属性-应用程序 中的目标框架改为.NET Framework 4.5 即可。如果XML中存在数组类型的节点,请保该类型节点内至少包含应循环的节点至少2个如原版如下:<SSR:info> <SSR:item> <!--参数名--> <..原创 2020-06-22 15:19:54 · 1066 阅读 · 0 评论 -
c# 字符串转byte[]数值 指定编码及补全空位
ANSI码与ASCII码不同在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码;在英文Windows操作系统中,ANSI 编码代表 ASCII编码;在繁体中文Windows操作系统中,ANSI编码代表Big5;在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。byte[] ArrData2 = System.Text.Encoding.GetEncoding("GBK").GetBytes(str);具体区别,请参阅:ANSI和ASCII、GBK.原创 2020-05-28 14:53:45 · 2081 阅读 · 0 评论 -
C# Json反序列化出错 缺少属性 数据协定类型 无法反序列化 因为未找到必需的数据成员
背景今天在使用:C# Json 序列化与反序列化反序列化的时候出现了下面的错误信息。System.Runtime.Serialization.SerializationException: 数据协定类型“TestEntity”无法反序列化,因为未找到必需的数据成员“multipleChoice, runTimeDisplayColumns”。在 System.ComponentMod...转载 2020-04-09 13:56:21 · 1841 阅读 · 0 评论 -
C# XML 嵌套数组的序列化方法
XML示例<?xml version="1.0" encoding="utf-8"?><root xmlns:QQQ="http://www.sss.org.cn" xmlns:WAC="http://www.aaa.com"> <Person> <Name>小莫</Name> <Ag...原创 2020-04-08 21:45:43 · 2814 阅读 · 0 评论 -
c# XML反序列化 修改前缀
对象类//XML命名空间,可用于与反序列化方法中指定当前节点的前缀,需要注意的是,此方法指定命名空间所修改的前缀对当前节点包含的所有子节点生效,对当前节点本身不生效,当前节点的前缀继承父节点[XmlRoot(Namespace = "http://这是一个AAA的网址/")]public class AAA{ public BBB bbb { get; set; }}[Xm...原创 2020-03-26 21:39:39 · 1353 阅读 · 0 评论 -
c# XML反序列化,及转换错误的解决方法(空值,数组等)
转换方法using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Xml.Serialization;namespace WindowsFormsAppl...原创 2020-03-05 18:13:22 · 6586 阅读 · 0 评论 -
C# 写XML
示例如下:using System.Xml;using System.Xml.Linq;public void CreatXmlTree(string xmlPath){ XElement xElement = new XElement("节点0");//建立节点 xElement.Add(new XAttribute("属性", "A"));//添加属性 ...原创 2019-12-12 09:59:42 · 145 阅读 · 0 评论 -
c# 时间比较
DateTime 数据时间 = Convert.ToDateTime(日期 + " " + 时钟);DateTime dt1 = new DateTime(2007,1,1,21,21,21);//赋值DateTime dt2 = new DateTime(2007,1,1,22,21,21);TimeSpan ts = dt2 - dt1;//差时TimeSpan DB = new ...原创 2019-05-24 16:44:09 · 1606 阅读 · 0 评论 -
Window 消息大全
自:刚看到的一篇比较好的文章,让你以后看程序不会迷惘了。不要以为下面的东西只有C++中才会用到哦!消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包...转载 2019-08-12 14:44:47 · 153 阅读 · 0 评论 -
遍历容器内控件
例如 遍历一个容器内的所有CheckBox控件:foreach (Control item in 控件a.Controls){ if (item is CheckBox) { //对控件 (item as CheckBox) 进行操作 }}原创 2018-04-02 15:31:06 · 995 阅读 · 0 评论 -
VS 2013 生成 32/64 位DLL方法
1.打开项目2.点击配置管理器3.选择相应的平台4.在相应的平台下,对应项目的平台选项内选择新建5.新建对应的平台即可(一定要把勾选去掉)6.重新生成项目即可转载 2017-08-14 11:58:04 · 5354 阅读 · 1 评论 -
lambda表达式 list排序
简单数值排序(转):List.Sort有三种结果 1,-1,0分别是大,小,相等升序降序比较,默认List的排序是升序排序如果要降序排序,也很简单,只需要在前面加一个负号List<int> tmp = new List<int>(){5,1,22,11,4};// 升序tmp.Sort((x, y) => x.CompareTo(y));// 降...原创 2019-03-12 17:13:14 · 3591 阅读 · 1 评论 -
DataTable 的使用相关
DataTable表的合并,在两个表格格式相同的情况下 DataTable dt1 = new DataTable();DataTable dt2 = new DataTable();dt1.Merge(dt2);//此时dt1为合并表 注意: 当dt1为空或null时 不可使用此方法,主体DataTable必须有结构 ...原创 2018-09-20 16:21:57 · 181 阅读 · 0 评论 -
c# 泛型函数的使用
以下函数的作用为 遍历容器,改变容器内所有T类型控件的文字颜色/// <summary>/// 遍历fatherControl内所有T类型控件,改变字体颜色/// </summary>/// <typeparam name="T">要改变字体颜色的类型</typeparam>/// <param name="fatherControl"原创 2018-06-04 11:19:16 · 3771 阅读 · 0 评论 -
C# 获取IPv4
在网上查过不少代码 大部分都有一些小问题,偶尔获取会出问题,这个是目前为止比较准的 暂时没出过随机的问题Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(a => a.AddressFamily.ToString().Equals("InterNetwork")).ToString();转载 2017-11-03 19:52:47 · 509 阅读 · 0 评论 -
C# 检测防火墙状态
引用 C:\Windows\SysWOW64 或C:\Windows\System32 目录下的 FirewallAPI.dll文件private static NetFwTypeLib.INetFwMgr GetFirewallManager(){ const string CLSID_FIREWALL_MANAGER = "{304CE942-6E39-40D8-943A-B转载 2017-11-13 11:13:48 · 3067 阅读 · 0 评论 -
c# 子窗体向父窗体传值
//父类代码Form2 frm2 = new Form2();frm2.Owner = this;frm2.Show();//或 frm2.Show(this);//或 frm2.ShowDialog(this);//子类代码Form1 frm1 = (Form1)this.Owner;frm1.textBox1.Text = "aaa";转载 2017-06-26 09:11:58 · 2350 阅读 · 0 评论 -
线程更新UI (线程与委托)
线程更新UI1.委托主线程:this.Invoke((EventHandler)(delegate{ 主线程UI控件的获取等操作;}));if (this.richTextBox_message.InvokeRequired){ this.Invoke((EventHandler)(delegate { 控件操作; ...原创 2017-06-08 10:15:35 · 1907 阅读 · 1 评论 -
C# 操作excel
1.添加引用 Microsoft.Office.Interop.Excel 15.0.0.0版本2.添加声明using Microsoft.Office.Interop.Excel;using Excel = Microsoft.Office.Interop.Excel;using System.Data.OleDb;using System.Diagnostics;//创建Exce原创 2017-08-09 17:07:24 · 439 阅读 · 0 评论 -
C# WinForm 程序退出的方法
1.this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;2.Application.Exit(); 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;3.Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问转载 2017-07-31 09:30:47 · 241 阅读 · 0 评论 -
窗口前置方法
1.子窗口在父窗口前,但不涉及其他窗口CheatList.Owner = 父窗体;2.窗体在系统所有窗体最前CheatList.TopMost = true;原创 2017-06-21 15:10:58 · 3150 阅读 · 0 评论 -
c# 编程学习
折叠代码:#region 注释//要折叠的代码#endregion//可选中需要包含的代码,点击鼠标右键,点击 外侧代码 ,在弹出的选项中选择条件编译(条件运行):在代码最顶端写#define如#define aa123#if (aa123)Console.WriteLine("yes");#elseConsole.WriteLine("no");#en...原创 2017-08-03 16:07:36 · 563 阅读 · 0 评论 -
C#委托
C#中的委托 委托和事件在 .NET Framework 中的应用非常广泛,然而,较好地理解委托和事件对很多接触 C# 时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里堵得慌,浑身不自在。本章中,我将由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.NET Framework 中的委托和事件、委托中方法异常和超时...转载 2018-04-26 14:38:18 · 199 阅读 · 0 评论 -
模拟button按钮按下
此例子为在文本框中按下回车键触发按钮按下private void textBox_single_carrier_freq_KeyDown(object sender, KeyEventArgs e){ if (e.KeyCode == Keys.Enter) { btn_single_carrier_freq.PerformClick(); //执行单击button1的动...原创 2018-04-12 11:42:33 · 1654 阅读 · 0 评论 -
点击文本框textBox 全选
private void textBox1_Enter(object sender, EventArgs e){ BeginInvoke((Action)delegate { (sender as TextBox).SelectAll(); });}转载 2018-04-02 17:22:46 · 3272 阅读 · 0 评论 -
C# (事件触发)回调函数
可以看出 由FormB的 'UDP接收数据' 函数接收到数据,传给了FormA的 '数据处理' 函数.使用场景 举例:A类中new出B类,B类中有UDP接收,当UDP接收到数据,将数据传回A类。或者用第二种方法,将回调方法以参数的方式传入到到函数中。2. 将A类的方法与B类的事件 用 B类的委托绑定。1. 实现接收数据的处理方法。1. 声明关于事件的委托;3. 对于事件的触发。原创 2018-01-17 11:33:05 · 8228 阅读 · 3 评论 -
根据芯片名获取对应的在线串口号
在芯片名唯一的情况下,可获取到此芯片对应的串口号芯片名 如图所示 /// /// 获取芯片名有效的在线串口号/// /// 串口设备芯片名(设备管理器上显示的)/// public static string GetCOM(string str){ string COMstr = string.Empty; string[] ss = MulGetHardwareInf原创 2018-01-12 16:31:12 · 1164 阅读 · 0 评论 -
结构体与byte数组转换/结构体内定长数组(序列化 数组指定长度)
可用于信息传输,发送端转为byte数组发送,接收端转回结构体/// /// 结构体转byte数组/// /// 要转换的结构体/// 转换后的byte数组public byte[] StructToBytes(object obj){ //得到结构体的大小 int size = Marshal.SizeOf(obj); //创建byte数组 by原创 2017-12-13 15:52:38 · 2495 阅读 · 0 评论 -
c# 操作 Sftp
先在项目中引用 Renci.SshNet.dll 创建 SFTPHelper.cs 类代码:using Renci.SshNet;using System;using System.Collections;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text转载 2017-06-01 17:36:26 · 4342 阅读 · 0 评论