.net技术栈
关于.net相关技术的整理与总结
工控IT陈生开
技术分享使我快乐!!!连载干货,0基础带你入门.net技术栈
展开
-
C#调用C++非托管代码的方法,不积硅步无以至千里
http://www.mamicode.com/info-detail-2663298.htmlhttp://www.cnblogs.com/liping13599168/archive/2011/03/31/2000320.htmlhttps://www.cnblogs.com/lonelyxmas/p/10747921.html转载 2020-12-05 19:58:22 · 265 阅读 · 0 评论 -
向控件拖放数据,不积硅步无以至千里
1. 设置待接收数据控件的AllowDrop属性为True2.private void textBox1_DragEnter(object sender, DragEventArgs e){ //必须设置拖放效果 e.Effect = DragDropEffects.Copy;}private void textBox1_DragDrop(object sender, DragEventArgs e){ IDataObject dataObject = e.Dat原创 2020-12-04 16:50:17 · 109 阅读 · 0 评论 -
打包成安装文件或集成EXE的方法,不积硅步无以至千里
VS2017 打包成exe 在项目的解决方案 右键→ 新建项目 后出现如下选择 (如果没有找到,请在下面这个网站学习下载并安装 visual studio installer 的教程) https://www.cnblogs.com/lxhbky/p/10695527.html ...转载 2020-12-04 09:56:41 · 609 阅读 · 0 评论 -
C#操作Excel表格,不积硅步无以至千里
本文主要介绍一下c#来操作excel表格,主要介绍我使用的,我是使用第三方提供的函数库(NPOI)来进行excel的操作,而NPOI库函数在其官网下,我这里就不拿出来了。1:NPOI库函数NPOI库函数下载后,解压出来有一下几个DLL文件,我们就是通过这几个DLL库文件中提供的函数来操作2:介绍一下excel表格 ...转载 2020-12-01 09:39:00 · 1737 阅读 · 0 评论 -
ListBox美化重绘,不积硅步无以至千里
如果要对ListBox控件进行自定义绘制(美化),那么首先必须将ListBox的DrawMode属性设置为OwnerDrawVariable或OwnerDrawFixed。ListBox有个ItemHeight属性,在DrawMode设置为Normal时,这个属性是不可设置的,并且其值是根据当前字体进行计算获得的。只有当DrawMode设置为OwnerDrawVariable或OwnerDrawFixed时,设置ItemHeight才生效。属性说明Normal组件的所有元素都由操转载 2020-11-30 20:36:53 · 413 阅读 · 0 评论 -
FileStream、StreamWriter、StreamReader常用方法,不积硅步无以至千里
private void button1_Click(object sender, EventArgs e){ try { //创建主测试文件夹 Directory.CreateDirectory(@".\TestDirectory"); //创建测试文件 using (File.Create(@".\TestDirectory\Test.txt")) { } ; //声明FileStream对象 .原创 2020-11-29 20:11:22 · 196 阅读 · 0 评论 -
App.config文件的使用,不积硅步无以至千里
1. 在文件中新添加一个结构<?xml version="1.0" encoding="utf-8" ?><configuration> <connectionStrings> <add name="conn" connectionString="Server=LocalHost\KAITESTSQLSERVER;Uid=sa;Pwd=1234;DataBase=KaiTest" /> </connectionStri原创 2020-11-25 17:21:15 · 156 阅读 · 0 评论 -
PropertyGrid控件的使用,不积硅步无以至千里
1. 创建PropertyGrid控件对象2. 创建填充类: CategoryAttribute字段上方属性,用来进行分组 DescriptionAttribute字段上方属性,用来进行解释说明public class Xin{ [CategoryAttribute("唯一标识"), DescriptionAttribute("表主键")] public int id { set; get; } public strin...原创 2020-11-25 16:08:05 · 669 阅读 · 0 评论 -
SoundPlayer常用方法,不积硅步无以至千里
1. 创建SoundPlayer对象:SoundPlayer soundPlayer=new SoundPlayer(wav文件路径);2. 播放:soundPlayer.Play();原创 2020-11-22 10:53:13 · 409 阅读 · 0 评论 -
Stopwatch常用方法,不积硅步无以至千里
1. 创建Stopwatch对象:Stopwatch stopWatch = new Stopwatch();2. 开始计时:stopWatch.Start();3. 停止计时:stopWatch.Stop();4. 获取结果:TimeSpan timeSpan=stopwatch.Elapsed;原创 2020-11-22 10:53:02 · 940 阅读 · 1 评论 -
string常用方法,不积硅步无以至千里
1. 字符串至数值转换: 创建转换结果标志:bool successFlag=false; 创建待转换字符串:string age=27; 创建用来保存转换结果值的变量:int result=-1; 转换:希望转换后得到的类型.TryParse(age,out result);2. 字符串至字符数组转换: 创建待转换字符串:string info="abc123"; ...原创 2020-11-22 10:52:15 · 175 阅读 · 0 评论 -
Serialized常用方法,不积硅步无以至千里
1. 将类的上方加上[Serializable],定义为可被序列化的2. 将不想序列化的字段,上方加上[NonSerialized]3. 创建文件流:FileStream fileStream=new FileStream(序列化后保存在该全路径下,文件的操作模式,文件的读写权限);4. 创建BinaryFormatter对象:BinaryFormatter binaryFormatter=new BinaryFormatter();5. 序列化:binaryFormatter.Serial原创 2020-11-22 10:51:17 · 291 阅读 · 0 评论 -
Path常用方法,不积硅步无以至千里
1. 将相对路径转换为全路径:Path.GetFullPath(相对路径);2. 获取包含这个文件或文件夹的文件夹名称:Path.GetDirectoryName(文件/文件夹的全路径);3. 获取路径下最终文件的文件名(不包含扩展名):Path.GetFileNameWithoutExtension(文件全路径);4.获取路径下最终文件的扩展名:Path.GetExtension(文件全路径);5.获取路径下最终文件的文件名(含扩展名):Path.GetFileName(文件全路径);..原创 2020-11-22 10:51:05 · 515 阅读 · 0 评论 -
Socket客户端常用方法,不积硅步无以至千里
1. 创建客户端Socket对象:Socket clientSocket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);2. 创建表示ip的字节数组:byte[] ip=new byte[]{服务端的ip}3. 创建IPAddress对象:IPAddress iPAddress=new IPAddress(ip);4. 创建IPEndPoint对象:IPEndPoint iPEndPoint=n原创 2020-11-22 10:50:48 · 795 阅读 · 0 评论 -
Socket服务端常用方法,不积硅步无以至千里
1. 创建服务端Socket对象:Socket serverSocket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);2. 创建客户端Socket对象Socket clientSocket=null;3. 配置服务端Socket: 创建表示ip的字节数组:byte[] ip=new byte[]{127,0,0,1} 创建IPAddress对象:IPAddress iP...原创 2020-11-22 10:50:36 · 646 阅读 · 0 评论 -
XML常用方法,不积硅步无以至千里
1. 创建XML文档: 创建XmlDocument对象:XmlDocument xmlDocument=new XmlDocument(); 创建XmlDeclaration对象:XmlDeclaration xmlDeclaration= xmlDocument.CreateXmlDeclaration("1.0", "GBK",null); 添加说明:XmlDocument.AppendChild(xmlDeclaration);...原创 2020-11-22 10:50:17 · 125 阅读 · 0 评论 -
MD5常用方法,不积硅步无以至千里
1. 创建待加密数据的字节数组:byte[] info=new byte[]{待加密数据}2. 创建加密后的MD5字节数组:byte[] md5Result=new byte[32]3. 创建MD5对象:MD5 md5=MD5.Create();4. 接收MD5结果:md5Result=md5.ComputeHash(info);原创 2020-11-24 14:09:59 · 329 阅读 · 0 评论 -
HashTable常用方法,不积硅步无以至千里
1. 创建HashTable对象:HashTable hashTable=new HashTabel();2. 添加键值对:hashTable.Add(键,值);3. 清空键值对:hashTable.Clear();4. 根据键删除键值对:hashTable.Remove(键);5. 通过键获取值:hashTable[键]6. 获取键的集合: 创建ArrayList集合:ArrayList arrayList=new ArrayList(); 获取键的集合:a...原创 2020-11-21 17:56:17 · 1550 阅读 · 0 评论 -
File常用方法,不积硅步无以至千里
1. 创建文件:File.Create(创建文件后的全路径);2. 删除文件:File.Delete(待删文件的全路径);3. 剪切文件:File.Move(待剪切文件的全路径,剪切后文件的全路径);4. 复制文件:File.Copy(待复制文件的全路径,复制后文件的全路径);5. 按字节读取: 创建字节数组数据块:byte[] buffer=new byte[一次最大读取字节数] 接收读取到的字节数组:buffer=File.ReadAllBytes(待读取文件...原创 2020-11-21 17:42:36 · 83 阅读 · 0 评论 -
Encoding常用方法,不积硅步无以至千里
1. 本机字符串按不同的编码格式转换成对应的字节数组:Encoding.按这种编码格式转换成数组.GetBytes(待转换字符串);2. 外部字节数组按字节数组的原有编码格式转换成对应的字符串:Encoding.该数组是按这种编码格式编的码.GetString(待转字节数组);...原创 2020-11-21 17:07:55 · 724 阅读 · 0 评论 -
Directory常用方法,不积硅步无以至千里
1. 创建一个文件夹:Directory.CreateDirectory(文件夹创建后的完整路径);2. 删除一个文件夹:Directory.Delete(待删除文件夹的完整路径,是否强制删除);3. 剪切一个文件夹:Directory.Move(待删除文件夹的完整路径);4. 获取一个文件夹下的所有文件夹的绝对路径:Directory.GetDirectories(文件夹的完整路径,名称过滤字符串);5. 获取一个文件夹下的所有文件的绝对路径:Directory.GetFiles(文件夹.原创 2020-11-21 17:01:17 · 242 阅读 · 0 评论 -
Dictionary常用方法,不积硅步无以至千里
1. 创建Dictionary对象:Dictionary<键数据类型,值数据类型> dictionary=new Dictionary<键数据类型,值数据类型>()2.添加键值对:dictionary.Add(键数据类型的键,值数据类型的值);3. 遍历键值对: foreach(KeyValuePair<键数据类型,值数据类型> keyValuePair in dictionary) { string keyContext=k...原创 2020-11-21 16:46:38 · 217 阅读 · 0 评论 -
DateTime常用方法,不积硅步无以至千里
1. 以字符串形式完整输出当前系统时间(年-月-日 12时/24时:分:秒 上/下午):dateTime.toString("yyyy-MM-dd hh/HH:mm:ss tt")2. 取出年月日时分秒的分量,返回值为int类型:dateTime.Year/Month/Day/Hour/Minute/Second原创 2020-11-21 16:36:56 · 83 阅读 · 0 评论 -
小技巧,不积硅步无以至千里
1)如何将a,b两个变量中的内容交换? 解:创建临时变量c,并以c开头,a做中,b做尾,首尾相连即可交换完毕。c=a;a=b;b=c;2)如何取消字符串中的\转义符的作用,让其原样输出? 解:在字符串前加@符号标记即可。string path=@"C:\A\B\C";3)如何在调试模式下监控变量的值? 解:点击上方调试菜单栏->窗口->监视->监视1/2/3/4->下方表格中填入变量名进行监视4)如何覆盖从父类继承过来的东西? 解:通过new关键字...原创 2020-11-21 16:28:32 · 57 阅读 · 0 评论 -
常用快捷键,不积硅步无以至千里
1)全部代码格式整理:Ctrl+K,D2)所选代码格式整理:Ctrl+K,F3)智能代码提示:Ctrl+J4)所选代码注释:Ctrl+K,C5)所选代码取消注释:Ctrl+K,U6)折叠代码:#Region,#EndRegion7)帮助文件:F18)从光标位置选择到行尾:Shift+End9)逐语句调试:F1110)逐过程调试:F1011)跳出调试中进入的循环语句:Shift+F1112)建议修改项:Alt+Shift+F1013)字段自动生成属性:Ctrl...原创 2020-11-21 16:25:56 · 64 阅读 · 0 评论 -
ArrayList常用方法,不积硅步无以至千里
添加单个元素(可以是对象/基本类型/集合本身:arrayList.Add(元素)添加集合中的每个元素(非集合本身):arrayList.AddRange(元素的集合)指定位置插入元素:arrayList.Insert(索引,元素)指定位置插入集合中的每个元素(非集合本身):arrayList.InsertRange(索引,元素的集合)根据内容删除第一个匹配元素:arrayList.Remove(元素);根据索引删除第一个匹配元素:arrayList.RemoveAt(索引)根据索引及原创 2020-11-21 15:14:28 · 163 阅读 · 0 评论 -
编程实现,打开一个文件或程序
1. 引用System.Diagnostics命名空间2. 创建Process对象(用来执行文件运行的类)Process process = new Process()3. 创建ProcessStartInfo对象(用来定义待打开文件的,位置等信息)ProcessStartInfo processStartInfo = new ProcessStartInfo(文件路径)4. 设置Process对象process的StartInfo属性process.StartInfo = proc原创 2020-11-20 17:03:36 · 634 阅读 · 0 评论