.net(C# winform WPF)
文章平均质量分 59
啊拉丁的鱼
这个作者很懒,什么都没留下…
展开
-
Visual Studio模板代码注释小技巧分享
在日常开发过程中,难免有这样一种需求:就是你所建的每一个类文件或者接口文件都需要标注下作者姓名以及类的用途。如果我们每次创建文件的时候都需要写一遍这些信息是很烦神的。还好Visual Studio给我们提供了模板注释的功能来自动帮我们生成类似的注释代码。今天趁着中午休息的时间就让我们一起来操作下吧。作者:依乐祝原文链接:https://www.cnblogs.com/yilezhu/p/11132090.html 首先定位到你的VS的安装目录:C:\Program Files (x86)\M转载 2021-05-07 15:37:07 · 1135 阅读 · 0 评论 -
VS2019 项目打包发布(可安装到操作系统)
step1:安装VS2019项目打包插件installer ProjectsVS2019默认不包含整个插件,需要先安装VS2019的官方认可打包插件(Microsoft Visual Studio Installer Projects),如果已安装,请跳过该步骤,通过添加添加扩展插件的方式进行添加(菜单栏:Extensions->Manage Extensios)在online板块,搜索installer Projects,找到Microsoft Visual Studio Install原创 2020-08-14 11:49:44 · 6912 阅读 · 1 评论 -
c# 多线程中lock用法经典实例及lock("xxx"),lock(typeof(Class)),Lock(this)的区别
c# 多线程中lock用法及使用细节的经典实例一、Lock定义 lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。 在多线程中,每个线程都有自己的资源,但是转载 2016-03-13 17:17:56 · 1927 阅读 · 0 评论 -
C#调用DLL的几种方法,包括C#调用C\C++\C#DLL
C#中dll调用方法一、 DLL与应用程序动态链接库(也称为DLL,即为“Dynamic Link Library”的缩写)是Microsoft Windows最重要的组成要素之一,打开Windows系统文件夹,你会发现文件夹中有很多DLL文件,Windows就是将一些主要的系统功能以DLL模块的形式实现。动态链接库是不能直接执行的,也不能接收消息,它只是一个转载 2016-11-20 17:46:10 · 33722 阅读 · 4 评论 -
Assembly.Load 详解
你了解 Assembly.Load 吗? 我们在使用C# 语言的Assembly.Load 来加载托管程序集并使用反射功能时,一般需要先通过Assembly.Load(), Assembly.LoadFrom() 等方法将目标托管程序集加载到当前应用程序域中,然后生成对应实例,最后再进行调用实例的属性或者方法。一般情况下,我们调用Assembly.Load 一类方法是不会出问转载 2016-11-20 17:51:17 · 1916 阅读 · 0 评论 -
C# Process调用外部进程出错,但是双击打开却正常的解决方案
C# Process调用外部进程出错,但是双击打开却正常的解决方案如果直接执行:Process.Start(@"C:\webtotrade\test.exe");就会报下图错误:原因是我这个项目要读取运行目录下的一个.db数据库,异常信息提示很明显,这个数据库没有被读取成功,所以就实例化出错了。为什么会这样的呢?执行文件.exe和.db文件明明就在当前目录下,怎原创 2016-12-02 15:32:07 · 4941 阅读 · 3 评论 -
C#反射-Assembly.Load、LoadFrom与LoadFile详细例子用法
C#反射-Assembly.Load、LoadFrom与LoadFile反射Demo:public class Person{ public int Age; public void SayHello() { Console.WriteLine("Hello Person"); }}clas转载 2016-11-20 18:15:31 · 14563 阅读 · 1 评论 -
VS2015 中统计整个项目的代码行数
在一个大工程中有很多的源文件和头文件,我如何快速统计总行数?------解决方案--------------------b*[^:b#/]+.*$^b*[^:b#/]+.*$ctrl + shift + F 查找选项选 正则表达式具体步骤:1.鼠标停靠在你的项目解决方案附近如图所示:2.组合键:ctrl + shift + F 出现查找和替换选项转载 2016-11-25 15:32:33 · 18778 阅读 · 8 评论 -
WPF Dispatcher防止跨线程调用需要注意的问题
新建一个独立的.cs文件,只能通过如下形式进行跨线程委托调用。Dispatcher.CurrentDispatcher.BeginInvoke但是发现这样的代码虽然没报错,但是却也没有生效。其实只要保证当前类是继承了window这个父类就可以了,这样就可以用Dispatcher.BeginInvoke的方式调用跨线程委托了。原创 2016-12-09 20:06:34 · 1480 阅读 · 0 评论 -
批量删除C#注释(适用于vs开发环境)
题目:批量删除C#注释(适用于vs开发环境)方法:第一步:使用Ctrl+H快捷键,打开查询替换窗口第二步:在‘查找选项’中,勾选‘使用’‘正则表达式’第三步:在‘查找内容’中,填写正则表达式[\t]*//[^\n]*\n第四步:‘替换为’留空第五步:单击‘全部替换’按钮,完成整个项目或者当前文档等替换举例:替换前:转载 2017-05-11 15:09:33 · 1849 阅读 · 0 评论 -
c#获取本地IP和MAC地址
查找了几个方法,经过调试修改,下面这个方法能很好的获取到本地的IP和MAC地址。可以用于这方面的功能实现。主要是要添加System.Management的引用。[csharp] view plain copy print?using System; using System.Management; using System.Net;转载 2017-05-13 23:09:43 · 669 阅读 · 0 评论 -
C# 获取本机CPU序列号,MAC地址,硬盘ID,本机IP地址,计算机名,物理内存,PC类型
首先引入服务 然后 调用本文转载自http://blog.sina.com.cn/s/blog_7eeb43210101hf7f.html public class Computer { public static string CpuID; //1.cpu序列号 public static string MacAddress转载 2017-05-13 23:19:35 · 1884 阅读 · 1 评论 -
C#中交错数组int[][]和二维数组[,]之间的区别
交错数组是元素为数组的数组。交错数组元素的维度和大小可以不同。交错数组有时称为“数组的数组”。以下示例说明如何声明、初始化和访问交错数组。下面声明一个由三个元素组成的一维数组,其中每个元素都是一个一维整数数组:int[][] jaggedArray = new int[3][];必须初始化 jaggedArray 的元素后才可以使用它。可以如下例所示初始化该元素:jaggedArr转载 2016-11-08 18:41:01 · 1038 阅读 · 0 评论 -
在VS中添加lib的第三种方法
先说说普通的两种方法:方法1: 通过设置工程配置来添加lib库.转自网上:A、添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。B、添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录。C 然后添加工程引用的lib文转载 2016-10-21 11:41:05 · 600 阅读 · 0 评论 -
C#:一个增强的TcpListener(*)服务器演示程序及源代码下载
增强功能:独立线程侦听连接请求线程池处理连接通信AES 256位数据加密传输下载地址:TcpClientPlus.zip演示程序界面:演示程序源代码:[csharp] view plain copyusing System; using System.Net; using S转载 2016-05-11 18:36:23 · 1320 阅读 · 0 评论 -
C#:一个增强的TcpListener(一)构造函数
[csharp] view plain copy/* ---------------------------------------------------------- 文件名称:TcpListenerPlus.cs 作者:秦建辉 MSN:splashcn@msn.com QQ:36748897 博客:http://blog.转载 2016-05-11 18:37:53 · 845 阅读 · 0 评论 -
C#:一个增强的TcpListener(二)线程池
[csharp] view plain copyusing System; using System.Collections.Generic; using System.Net.Sockets; using System.Threading; namespace Splash.Net.Sockets { publi转载 2016-05-11 18:37:07 · 1726 阅读 · 0 评论 -
C#网络编程之--TCP协议(一)
C#网络编程之--TCP协议(一)TCP 是面向连接的传输协议面向连接,其实就好比,A打电话给B,如果B接听了,那么A和B之间就的通话,就是面向连接的TCP 是全双工的传输协议全双工,这个理解起来也很简单,A打电话给B,B接听电话,那么A可以说话给B听,同样B也可以给A说话,不可能只允许一个人说话.TCP 是点对点的点对点,这个看了上面的举例相比转载 2016-04-30 10:37:28 · 631 阅读 · 0 评论 -
C#网络编程之---TCP协议的同步通信(二)
C#网络编程之---TCP协议的同步通信(二)上一篇学习日记C#网络编程之--TCP协议(一)中以服务端接受客户端的请求连接结尾既然服务端已经与客户端建立了连接,那么沟通通道已经打通,载满数据的小火车就可以彼此传送和接收了。现在让我们来看看数据的传送与接收先把服务端与客户端的连接代码敲出来服务端IPAddress ip = new IPAddress(new转载 2016-04-30 10:38:58 · 1730 阅读 · 0 评论 -
CallbackOnCollectedDelegate was detected C#调用C++DLL注册函数指针出错解决方案
在封装C#版的金仕达交易接口的时候,测试回调功能出现以下错误:CallbackOnCollectedDelegate was detected “”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,知道确信不会再次调用它们。然后根据异常提示去定位问题,发现是期货商那边给我原创 2016-05-25 18:42:55 · 1472 阅读 · 0 评论 -
套接字sockets用networkstream发送文本信息时的一个细节 有大量的空格 以及乱码问题
套接字sockets用networkstream发送文本信息时的一个细节 有大量的空格 以及乱码问题用以下代码会出现中文乱码以及有大量空格的情况出现: byte[] b = new byte[tc.ReceiveBufferSize]; netStream.Rea原创 2016-05-14 11:34:54 · 1488 阅读 · 0 评论 -
WPF 启动类(窗口)移动到项目的子目录之后,无法启动程序,找不到xxx.xaml资源
一开始新建WPF项目的时候,启动类login.xaml和app.xmal是在项目的根目录下面的。可是当把Login.xaml移动到子目录parts里面之后,项目可以编译成功,但是运行的时候就提示找不到login.xaml资源。程序无法启动。此时做如下修改即可:打开app.xmal,把StartupUri="login.xaml" 改成StartupUri="/parts/logi原创 2016-06-09 10:39:32 · 3540 阅读 · 0 评论 -
WPF 动态模拟CPU 使用率曲线图
WPF 动态模拟CPU 使用率曲线图 在工作中经常会遇到需要将一组数据绘制成曲线图的情况,最简单的方法是将数据导入Excel,然后使用绘图功能手动生成曲线图。但是如果基础数据频繁更改,则手动创建图形可能会变得枯燥乏味。本篇将利用DynamicDataDisplay 在WPF 中动态模拟CPU 使用率图表,实现动态生成曲线图。 新建项目将DynamicD转载 2016-06-12 17:22:18 · 1312 阅读 · 0 评论 -
WPF Chart DynamicDataDisplay的横坐标显示日期的解决方案
WPF Chart DynamicDataDisplay的横坐标显示日期的解决方案我们打开DynamicDataDisplay的源码.内部自带有samples其中v2中带有一个名叫TooltipSample的例子.如图...坐标尺默认计算的是横坐标的值.若我们的横坐标是以日期计算呢?则我们看源码我们找到一个名为CursorCoordinateGraph的xaml文件.它转载 2016-06-12 17:28:15 · 5924 阅读 · 0 评论 -
C# Process执行cmd指令,实时获取输出并隐藏cmd窗口
如下,执行的时候禁用系统外壳程序即可。/// /// 获取系统信息/// /// private string getSystemInfo(){string ret = "系统信息:" + Environment.NewLine;using (Process process = new System.Diagnostics.Process()){pr原创 2017-05-14 00:40:10 · 10999 阅读 · 0 评论 -
C# string字符串插值(使用前缀$)
C# 引入了字符串前缀$的字符串插值。string s = "hello";string y = $"{s} world";等同于使用Format方法:string y = string.Format("{0} world",s);并且我们可以调用值的方法,如:string y = $"{s.ToLower()} world";使用新的字符串格式代码可读性要好一些如:...转载 2018-07-20 15:49:07 · 6520 阅读 · 0 评论 -
C# 使用/配置Log4Net
1、首先在项目中添加Nuget程序包...2、然后在NuGet窗体中搜索Log4Net,然后点击安装<安装过程可能会持续几分钟,请耐心等待>3、在项目中添加一个Config文件,如已有App.config,则直接在其中添加内容:截图中配置的XML代码如下: <log4net> <logger name="logerror"...转载 2018-11-11 19:33:48 · 268 阅读 · 0 评论 -
C#两种创建XML文档的方法
C#有两种创建XML文档的方法1.XmlDocument2.Linq to XML第一种:XmlDocument结果:[xml文件如下]<?xml version="1.0" encoding="UTF-8"?><ns0:Z_AVS_UPLOAD_WEIGHT_Request xmlns:ns0="http://schemas.microsoft.com/...转载 2018-11-22 10:11:49 · 2458 阅读 · 0 评论 -
Log4net终结版
继上一篇Log4net的整理已经多时,最近闲时把log4net封装了下,针对一些可能的需求进行了调查,例如多级别日志和多文件日志。1.单文件日志 对于单文件的日志,封装代码如下:public enum LogMessageType{ Debug, Info, Warn, Error, Fatal}public s...转载 2018-11-23 09:46:38 · 288 阅读 · 0 评论 -
C# ICSharpCode.SharpZipLib 压缩、解压文件 附源码
http://www.icsharpcode.net/opensource/sharpziplib/有SharpZiplib的最新版本,本文使用的版本为0.86.0.518,支持Zip, GZip, BZip2 和Tar格式。我们需要dll 在官网上也有。好了,深入的大家还要多多研究,今天我们简单介绍一下 简单的 单文件、文件夹的压缩和解压先给大家看一下效果:...转载 2019-04-15 12:10:42 · 9286 阅读 · 1 评论 -
C#中使用7Z进行压缩解压
C#中使用7Z进行压缩解压SevenZipSharp相关文档下载地址:http://sevenzipsharp.codeplex.com/releases/view/512541.解决方案中添加引用:SevenZipSharp.dll2.复制粘贴两个dll文件:7z.dll 7z64.dll,并将属性“复制到输出目录”修改为“如果较新则复制” //测试压缩 ...转载 2019-04-15 16:02:57 · 4113 阅读 · 0 评论 -
VS2017封装的CTP接口(6.3.13/6.3.15),安装到windows server2016 x64系统(云主机)运行崩溃,无法运行问题解决方案
背景: 用VS2017 对C++底层的CTP接口进行封装(当前最新穿透版6.3.13/6.3.15),封装经过C#/WPF进行二次封装生成GUI客户端;在开发环境win10 x64上运行一切正常;可是一旦打包放到windows server 2016 x64的云主机上安装运行就直接崩溃。调试: 穿透版的CTP接口为了实现监管要求,主要增加了客户端信息采集功能模块,...原创 2019-05-27 00:18:26 · 1839 阅读 · 0 评论 -
RestSharp & WebSocket4Net 请求被中止: 未能创建 SSL/TLS 安全通道,解决方法
用C#封装的网络模块接口,用到了webSocket4Net和RestSharp,在debug的时候一开始都出现了类似以下错误:请求被中止: 未能创建 SSL/TLS 安全通道。 System.Net.WebException: 请求被中止: 未能创建 SSL/TLS 安全通道。 在 System.Net.HttpWebRequest.GetResponse() 在 RestSh...原创 2019-06-12 15:38:49 · 4049 阅读 · 0 评论 -
WPF 4 DataGrid 控件(自定义样式篇)
WPF 4 DataGrid 控件(自定义样式篇) 在《WPF 4 DataGrid 控件(基本功能篇)》中我们已经学习了DataGrid 的基本功能及使用方法。本篇将继续介绍自定义DataGrid 样式的相关内容,其中将涉及到ColumnHeader、RowHeader、Row、Cell 的各种样式设置。ColumnHeaderStyle 属性 一般来讲列表头是用户首...转载 2019-08-14 10:29:12 · 602 阅读 · 0 评论 -
Visual Studio2017 WPF快速创建、修改控件样式的方法
WPF在界面设计上是相当的好用,如果需要设计好看的界面,一般都需要用到大量的样式。这么多的样式写法,很难记得住,或者记住了很快就会忘记。这里提供一种快速构建样式,或者说重写样式的方法:比如自定义的一个标题栏,需要重写最小、最大、关闭按钮,如下图添加三个button,设置好背景和边框色与窗体背景色一致的黑色,字体白色。默认的时候鼠标移动到上面是没有任何颜色变化的,我需要实现,当鼠标悬...原创 2019-08-09 23:59:09 · 1877 阅读 · 2 评论 -
C#使用log4net记录日志
一、下载log4net.dll(百度云里面有)文件,然后再在项目中添加引用。二、在AssemblyInfo.cs文件中添加log4net.dll的参数。[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]...转载 2018-11-11 19:32:00 · 364 阅读 · 0 评论 -
C#中ToString格式大全 String.Format 格式
C 货币2.5.ToString("C")¥2.50D 十进制数25.ToString("D5")00025E 科学型25000.ToString("E")2.500000E+005F 固定点25.ToString("F2")25.00G 常规2.5.ToString("G")2.5N 数字2500000.ToString("N&qu转载 2018-07-22 18:50:49 · 2101 阅读 · 0 评论 -
class A<T> where T:new()
class A<T> where T:new() 这是类型参数约束,where表名了对类型变量T的约束关系。where T:A 表示类型变量是继承于A的,或者是A本省。where T: new()指明了创建T的实例应该使用的构造函数。 .NET支持的类型参数约束有以下五种: where T: struct ...转载 2018-07-21 15:49:34 · 323 阅读 · 0 评论 -
C# Excel操作读写实例
概要: excel导出在C#代码中应用己经很广泛了,我这里就做些总结,供自己和读者学习用。Excel知识点。 一、添加引用和命名空间 添加Microsoft.Office.Interop.Excel引用,它的默认路径是C:\Program Files\Microsoft Visual Studio 9.0\Visual Studio Tools for Office转载 2017-07-04 17:18:43 · 2019 阅读 · 2 评论 -
WPF 自定义DateTimePicker控件,实现时间设置与选择
想做一个定时器功能,需要用到DateTimePicker控件。可是发现WPF只有一个设置日期的DatePicker控件,没有设置时间的DateTimePicker控件。这样很不方便,所以就自己做了一个,代码相对简洁,功能可以再做优化。另外考虑到扩展和UI体验,这里创建的是usercontrol。先看看效果:前台代码:原创 2017-07-19 09:17:05 · 17034 阅读 · 2 评论