C# winform 鼠标操作时要判断是否按下Ctrl键
C# winfrom 鼠标操作时要判断是否按下Ctrl键
控件需要Ctrl+Click 实现多选
判断是否按住快捷键的方法:
(Control.ModifierKeys & Keys.Control) == Keys.Control
C# winfrom 鼠标操作时要判断是否按下Ctrl键
控件需要Ctrl+Click 实现多选
判断是否按住快捷键的方法:
(Control.ModifierKeys & Keys.Control) == Keys.Control
Nancy是一个轻量级的MVC框架,也可以完全脱离IIS.
下面是官网的一些介绍:
Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互。
Nancy 设计用于处理 DELETE, GET, HEAD, OPTIONS, POST, PUT和 PATCH 等请求方法,并提供简单优雅的 DSL 以返回响应。让你有更多时间专注于你的代码和程序。
WPF 获取程序路径的方法
1.Application.ExecutablePath;
获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
2. AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
获取或设置包含该应用程序的目录的名称。
WPF中获取控件或窗口句柄
winfrom获取剪切板数据
功能描述:
WPF DataGrid 多绑定设置
在WPF中 DataGrid 转换使用多绑定参数转换的使用方法:
1.集成 IMultiValueConverter 接口,实现一个转换器:
WindowsAPI - avicap32.dll 参数详解:
WM_CAP_START= WM_USER=1024;
Microsoft Velocity:微软自家分布式缓存服务框架。
最近使用的web项目中,需要服务器直接触发前端显示效果。
所以研究了一下websocket:
OpenCVSharp有一名日本工程师开发,项目地址为:https://github.com/shimat/opencvsharp。其是OpenCV的.NET wrapper,它比Emgucv更接近于原始的OpenCV,并且有很多的样例参考,其采用LGPL发行,对商业应用友好(基本上相当于BSD)。
1. 使用ThreadStatic特性
ThreadStatic特性是最简单的TLS使用,且只支持静态字段,只需要在字段上标记这个特性就可以了:
//TLS中的str变量
[ThreadStatic]
在我们开发过程中经常会遇到数据有效性性验证,例如非空验证,长度验证以及其他验证,如果每个方法单独验证会导致方法入口一堆重复的代码,如果利用MetadataType进行统一验证就能减少很多重复的代码
NET常用的一些开源组件整理:
1.导出Excel报表的插件:NOPI.dll(基于微软OpenXml实现)
一.WCF、WebAPI、WebService之间的区别
Web Service
利用C#中的HttpListener可以模拟web服务器接收web请求。
HttpListener说明:
经常遇到系统之间转换文件的时候。如果不用字节是base64位字符串
程序开发中经常遇到对象复制的,C#有浅拷贝和深拷贝的区别,避免浅拷贝的复制一个办法,就是可序列化对象的序列化复制
/// <summary> /// 序列号复制类 /// </summary> public class SerializeHelper { /// <summary> /// 序列化 /// </summary> /// <param name="target"></param> /// <returns></returns> public static string Serializable(object target) { using (MemoryStream stream = new MemoryStream()) { new BinaryFormatter().Serialize(stream, target); return Convert.ToBase64String(stream.ToArray()); } } /// <summary> /// 反序列化 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="target"></param> /// <returns></returns> public static T Derializable<T>(string target) { byte[] targetArray = Convert.FromBase64String(target); using (MemoryStream stream = new MemoryStream(targetArray)) { return (T)(new BinaryFormatter().Deserialize(stream)); } } /// <summary> /// 合并反序列化与序列化 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="t"></param> /// <returns></returns> public static T DeepClone<T>(T t) { return Derializable<T>(Serializable(t)); } }
1)Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。