- 博客(32)
- 资源 (8)
- 收藏
- 关注
转载 C# 生成唯一随机数
使用C#生成唯一随机数的方式已知有以下三种:1.洗牌策略:如果你仅仅是需要在 0-9 之间做 随机唯一 的话,用洗牌策略 来打乱数组元素即可static void Main(string[] args) { var nums = Enumerable.Range(0, 10).ToArray(); var rnd = new Random(); // Shuffle the array
2022-04-29 10:19:19 1127
原创 DevExpress TreeList 节点拖动时中如何判断源节点作为目标节点的子节点还是兄弟节点?
最简单的方法,获取拖动过程中的插入位置:private DragInsertPosition AjustDirection(object sender, DragEventArgs e){ TreeListNode dragNode, targetNode; TreeList tl = sender as TreeList; Point p = tl.PointToClient(new Point(e.X, e.Y)); dragNode = e.Data.GetDa
2020-08-11 09:44:13 398 1
原创 C# 对象类型集合自定义排序
对象类型集合自定义排序:对象类型:class Model{ public string id{get;set;} public string name{get;set;}}List<Model> lst = new List<Model>(){ new Model(){"1","aa"}, new Model(){"2","bb"}, new Model(){"3","cc"}, new Model(){"4","dd
2020-08-05 16:20:23 722
原创 Dev TreeList 添加、修改、删除树节点时树状态保持不变
使用Dev TreeList时,每当新增、修改、删除节点时,树就会闪烁,而且节点的展开状态混乱,滚动条也乱跳,解决这个问题思路很简单: 1.操作树之前保存树的当前状态,如节点的展开状态(只保存展开即可)、当前焦点、当前距顶位置等。 2.操作完树(调用RefreshDataSource)后,重新设置树的状态。 重点:为了让整个操作过程中树不闪烁,切记,一次操作只能对树的状态保持一次,加载一次,保持和记载之间只能调用一次树的刷新RefreshDataSour...
2020-05-21 15:06:49 2690 5
转载 winform程序捕获全局异常,对错误信息写入日志
本文为转载文章,文章出处https://blog.csdn.net/HorseRoll/article/details/80366048 Winform程序在非调试和交付客户使用阶段,经常会出现一些未捕捉处理的异常,导致程序崩溃。这时如果没有错误日志的输出会让人捉襟见肘,无从排查,所以对程序全局异常的捕获和日志输出显得格外重要。 以下提供一种简单的全局异常捕获的方式:...
2019-11-03 13:27:14 1078
原创 WinForm ContextMenuStrip 选中项背景色修改
有些时候自己想要修改ContexMenuStrip右键菜单的选中背景色,该如何实现呢?可通过以下方式实现:contextMenuStrip.RenderMode = ToolStripRenderMode.Professional;contextMenuStrip.Renderer = new ToolStripProfessionalRenderer(new MqxsColorTab...
2019-08-20 18:57:00 2803
转载 8种主要排序算法的C#实现
简介排序算法是我们编程中遇到的最多的算法。目前主流的算法有8种。 平均时间复杂度从高到低依次是: 冒泡排序(o(n2)),选择排序(o(n2)),插入排序(o(n2)),堆排序(o(nlogn)), 归并排序(o(nlogn)),快速排序(o(nlogn)), 希尔排序(o(n1.25)),基数排序(o(n))这些平均时间复杂度是参照维基百科排序算法罗列的。...
2019-01-30 09:53:00 618
转载 [C#]LINQ中如何按实体的某个属性去重
[C#]LINQ中如何按实体的某个属性去重NET[C#]LINQ中如何按实体的某个属性去重后返回不重复的集合?问题描述比如有如下实体集合:Person1: Id=1, Name="Test1"Person2: Id=1, Name="Test1"Person3: Id=2, Name="Test2"如何使用LINQ按 Person.Id 去重,返回的集合只包含 Pers...
2018-12-06 11:42:01 1010
转载 常用正则表达式
正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码:var reg = /^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2})$/; var r ...
2018-04-26 15:13:41 216
转载 C# tableLayoutPanel动态加载控件闪烁的解决方案
本文转载自k_set原创内容点击打开链接WinForm加载多个自定义控件时,会出现很严重的闪烁问题,很卡,一块一块的加载(像打开网页时,网络很卡的那种感觉)简直没法忍受。在网上搜索了好久,网上大部分的方法是一下4种,但是都不能有效的解决问题。 1.将DoubleBuffered 设置 true,用双缓存处理Form界面内容加载,可以提高页面显示质量。或者SetSt
2018-01-11 14:49:49 8479 10
原创 C# LINQ去重复杂类型对象集合
通过使用LINQ方法语法中的Distinct(),可以去重简单类型集合,如:int、string等。但如果要去重复杂类型集合,那么 直接调用Distinct()方法是不行的。幸运的是,Distinct()方法可以添加自定义比较方式,简单类型的去重无非就是类型比较,因为类型简单索性.NET就帮我们直接实现了,但复杂类型就不行了,一般复杂类型都是自定义的,比如类、结构体等,对此我们只需要自己实现一...
2016-05-11 16:56:23 4527
转载 C#中Monitor和Lock以及区别
1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取锁之后因为异常,致锁无法释放,所以需要在try{} catch(){}之后的finally{}结构体中释放锁(Monitor.Exit())。 2.Monitor的常用属性和方法: Enter(O
2016-05-11 10:58:17 1501
转载 LINQ语法小结
读这篇文章之前,我先说下,每一种搜索结果集,我都以三种方式变现出来,为啦更好的理解,希望不要嫌我啰嗦。1.简单的linq语法 //1 var ss = from r in db.Am_recProScheme select r; //2 var
2016-05-10 22:24:21 465
原创 C# Timer类详解
在winform编程中,我们经常会使用Timer类,但如何使用合适的Timer类就需要我们对Timer类有个详细的了解。Timer类有三种:1.定义在System.Windows.Forms里 (单线程)2.定义在System.Threading.Timer类里 (多线程)3.定义在System.Timers.Timer类里 (多线程)System.Windows.Fo
2016-04-14 17:41:18 1754
转载 C# Color值转换为unit
由于C#没有RGB函数,所以在需要的时候我们该如何把想要的Color值转换成对应的unit值呢? RGB原理:RGB = R + G * 256 + B * 256 * 256 根据该原理可以很简单的把color转换成unit值。 在此为大家提供一个更高效的方法: uint ParseRGB(Color color){ return (uint)(((
2016-03-24 11:10:53 1712
转载 C# 获取本机“设备管理器”信息列表
今天分享一个获取本机“设备管理器”的代码,希望可以帮到一些人吧!class Externs{public const int DIGCF_ALLCLASSES = (0x00000004);public const int DIGCF_PRESENT = (0x00000002);public const int SPDRP_DEVICEDESC = (0x00000000);
2015-12-30 16:12:59 7750 1
转载 C#中子线程操作主线程中窗体上控件的方法
注:本文转载自C#中子线程操作主线程中窗体上控件的方法在C#中,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能简单的通过控件对象名来操作,但不是说不能进行操作,微软提供了Invoke的方法,其作用就是让子线程告诉窗体线程来完成相应的控件操作。要实现该功能,有两种方法可以选择:
2015-06-25 15:21:49 616
原创 WebBrowser控件页面内容放大、缩小功能实现
在开发Winform程序中的WebBrowser控件时想要实现页面内容放大、缩小功能,由于IE版本问题,WebBrowser中没有Ctrl+滚轮实现放大、缩小页面内容的功能,只能自己实现了。实现具体代码如下:1。在引用中引用COM组件Microsoft Internet Controls。2.放大代码: 自定义private int v = 100;v+=10;
2015-04-28 16:27:33 11773
原创 winform程序实现中文语音识别
最近需要给自己开发的软件添加语音导航功能,百度+摸索终于实现了,不过比较简陋,分享出来供大家娱乐批评!现在市场上的语音引擎不多,有微软SAPI、googgle、讯飞,经过多番比较最终决定使用微软SAPI 5.1,原因是免费,便于我集成到winform程序里。首先,要实现微软的这个语音识别需要几个东西:1.安装微软SAPI 5.1 SDK2.安装中文语言包这两个东西网上都可以下载
2015-01-09 16:44:34 3447
转载 为什么递归是低效的!
注:本文转载自漫谈递归:递归的效率问题递归在解决某些问题的时候使得我们思考的方式得以简化,代码也更加精炼,容易阅读。那么既然递归有这么多的优点,我们是不是什么问题都要用递归来解决呢?难道递归就没有缺点吗?今天我们就来讨论一下递归的不足之处。谈到递归就不得不面对它的效率问题。为什么递归是低效的还是拿斐波那契(Fibonacci)数列来做例子。在很多教科书或文章中涉及到递归或计
2014-12-19 15:14:38 701
转载 C# 异步调用
注:本文系转载,出处不详!为什么要进行异步回调?众所周知,普通方法运行,是单线程的,如果中途有大型操作(如:读取大文件,大批量操作数据库,网络传输等),都会导致方法阻塞,表现在界面上就是,程序卡或者死掉,界面元素不动了,不响应了。异步方法很好的解决了这些问题,异步执行某个方法,程序立即开辟一个新线程去运行你的方法,主线程包括界面就不会死掉了。异步如何开始,好理解,现在我们讨论的是如何结束这个异
2014-11-26 12:00:19 544
转载 多线程与异步的区别
注:本文转自多线程与异步的区别 随着拥有多个硬线程CPU(超线程、双核)的普及,多线程和异步操作等并发程序设计方法也受到了更多的关注和讨论。本文主要是想与园中各位高手一同探讨一下如何使用并发来最大化程序的性能。 多线程和异步操作的异同 多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等同的概念。但
2014-11-26 11:52:20 360
转载 Invoke 和 BeginInvoke 的真正涵义
注:本文转自Invoke 和 BeginInvoke的真正涵义BeginInvoke 方法真的是新开一个线程进行异步调用吗?参考以下代码:public delegate void treeinvoke();private void UpdateTreeView(){ MessageBox.Show(System.Threading.Thread.Curren
2014-11-26 11:51:08 556
转载 BackGroundWorker组件详解
注:本文转自比new Thread好用的BackgroundWorkerBackgroundWorker 可以用于启动后台线程。主要的事件及参数: 1.DoWork——当执行BackgroundWorker.RunWorkerAsync方法时会触发该事件,并且传递DoWorkEventArgs参数; 2.RunWorkerCompleted——异步操作完成或中途终止
2014-11-26 11:45:57 1570
原创 C# 多线程问题处理小结
这两天用到一个需要使用多线程的问题,纠结了一天终于解决了!问题描述:程序启动后,需要解析文件,由于文件太大,所以解析中会使程序卡顿,故需要额外弹出一个Loading窗体显示“Loading...”(可以用动态图或者进程条),同时文件依旧解析,解析好了就关掉Loading窗体。问题分析:Loading窗体是由主线程new出来的,所以在Loading窗体关闭前主线程都被用着,而且解析文件是个I
2014-11-25 17:01:25 1212
转载 .NET程序员,我们应该更专业点
转载自:众所周知,打从.Net诞生那一天起,业界就弥漫着一股贬低.Net的空气。许多公司排斥.Net,因为.Net低效的名声,加之怕被微软绑架的担心。许多C++程序员有偏见,看不起.Net程序员,认为那些人比较菜,才学入门级的语言。Java程序员对.Net也不待见,我们会Spring,Hibernate等一大堆框架,你们除了用类库还会什么? 这些看法有些确实是偏见,我们大可以有力
2014-09-25 17:45:32 344
报警接口说明
2016-05-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人