自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 c# 字符串拼接优化 string.concat stringbuilder 的使用和性能

如果你的内插写法里的变量是对象,而且你没有显示.ToString(),那么就会被编译为 stringformat,而这是最慢的一种拼接方式!一开始我嫌 StringBuilder 每个字符串都要写一行,又臭又长,所以想单独写个方法,然后传字符串进去,那这就要用到 params 关键字.,内插写法会被编译为两种情况,一种是stringformat,一种是string.concat。如果你每次拼接的字符串拼接的在5-6个以下,就可以用string.concat.比如。上下两种的性能差好几倍!

2023-05-10 17:05:39 1024

原创 大数据量下的高性能字符串处理 string.Substring优化

有一个txt文本,我需要对他每一行进行遍历,并在匹配的地方做文本截取,常规情况下肯定就直接用string.Substring,但一测试,耗时直接干到60000ms,也就是60s.如下面代码中被注释掉的部分,无论是用Substring还是Split都在60s左右.(还不是每一行都要截取)最后使用了StringBuilder.CopyTo(),直接从60000ms降到25ms代码中其他的代码作用不用管,测试过,那些逻辑耗时不到5ms,修改前: for (va..

2022-01-03 22:59:30 1486

原创 c# winform 反射获取事件注册的所有委托,清除注册的事件委托,手动触发指定事件

这个方法应该是最全面的了,写这个的初衷是为了注销事件所绑定的静态事件方法,避免内存泄露.但是网上的大多只有一个粗略的获取 EventHandlerList 的方法,对于复杂情况的自定义类或者派生类无法准确获取.this object control 用 object 是为了兼容自定义类里的事件 /// <summary> /// 清空控件所有事件的处理方法. /// 默认过滤掉 "Disposed" /// </s.

2021-10-13 23:22:00 1368 1

原创 DataGridView 多列排序,点击多个列标题排序

本来用DataGridView.DataSource绑定的是可排序 SortableBindingList但是无法实现点击多个列排序,要想实现还是有点复杂.最终实现的效果: 按住shift键点击列标题,按照点击的先后顺序依次排序,效果等同于OrderBy.ThenBy.ThenBy.ThenBy.ThenBy......由于SortableBindingList 本身实现了点击单列自动排序,第一步、就是禁用自动排序功能如果绑定的是 List<T> 就不跳过这一步我用了一.

2021-07-08 00:59:59 1358

原创 c# 小字体文字描边

最近想给一批图片上画上文件名字,但是不描边的话颜色一样就看不见了.然后想着用GraphicsPath来描边,结果文字太小之后就如 00361 那张一样,完全是糊的.后来一直苦苦搜索百度谷歌都给翻烂了,全是GraphicsPathGraphicsPathGraphicsPathGraphicsPath............然后没办法我就是用了遍历像素点描边的笨办法先顶着,但是少量用还没什么,这次要一次上万张图片,就太慢了.然后又开始了搜索之路.....最后翻到一篇文章一种简单的...

2021-06-26 15:09:27 766 1

转载 C# 控件透明背景(winform)

原文出自:https://blog.csdn.net/yangshengchuan/article/details/54909594修改了一点bug和方式,现在可以根据任意指定颜色镂空,还可以一次性镂空多个颜色使用方法:using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Drawing.Drawing2D;using Sy

2021-04-27 00:15:59 3030

原创 手动清空控件事件,手动触发控件事件

1: 手动清空某个控件下某个事件注册的委托2: 手动执行控件某个事件下的所有委托 /// <summary> /// 清空控件指定事件下的事件处理方法 /// </summary> /// <param name="control"></param> /// <param name="eventname"></param> pu...

2021-04-09 02:51:42 522

原创 未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将“xxx.Resources.resources”正确嵌入或链接到程序集

从github下载了一个皮肤控件,不想外带dll,就想着直接把源码丢进程序里编译.结果就报了错,具体解决办法如下:双击dll源码的资源设计类,将"WinForm.UI.Properties.Resources" 更改为"client.Libs.WinForm.UI.Properties.Resources"而这个client.Libs.是我程序的完整路径,代表 /// <summary> /// 返回此类使用的缓存的 ResourceManager ..

2021-03-20 17:52:08 1381 2

原创 ICSharpCode.TextEditor 设置背景颜色,前景颜色

原本是白色背景黑色文字,但是想改成vs样式的,但是ICSharpCode.TextEditor 不提供设置方法或接口找了好几个小时最后发现要在对应语法配置文件里面去设置比如:c#打开文件 CSharp-Mode.xshd在Environment 节点里面添加对应的设置既可。例如Default 就是默认背景颜色和前景颜色LineNumbers 是旁边显示行号的地方<SyntaxDefinition name = "C#" extension...

2021-01-17 02:45:02 2842

原创 ContextMenuStrip 扩展,反射添加、删除dataGridView.DataSource绑定后内容

最近在用dataGridView.DataSource,由于dataGridView.DataSource会绑定不同类型的数据,需要一个通用的删除、添加功能添加了弹出菜单ContextMenuStrip后需要针对不同的类型数据添加“插入一行”、“删除选中行”等功能。代码不多,写成了ContextMenuStrip 的扩展var obj =dataGridView.DataSourcevar type = obj.GetType(); var pro...

2020-12-15 19:36:13 2264

原创 <PrivateImplementationDetails>.ComputeStringHash 错误解决办法

严重性 代码 说明 项目 文件 行 禁止显示状态错误 CS0119 '“PrivateImplementationDetails”是一个 类型,这在给定的上下文中无效 Fxwap.jsssc G:\Project\srcs\gamekeyList\bin\Fxwap.jsssc-refl\Fxwap\jsssc\_Default.cs 26 活动用 ILSPY 或者.NET Reflector 、dnspy 等反编译出来之...

2020-10-08 19:22:00 6639

原创 VS 2019更新失败:安装程序要求重新启动计算机,然后才能运行visual studio

2020-08-18 11:13:13 3437 12

原创 c# Cefsharp 83.x 拦截request请求、response响应、cookie等

winform的Cefsharp 83.x版本对原来的IRequestHandler 接口做了调整,以前的版本在IRequestHandler 里有GetResourceResponseFilter 接口,可以对response数据进行过滤、修改,但是最近更新了新版之后发现接口不见了,然后搜了好久没搜到,能搜到的都是很老的版本。后来在源码里去找了半天才发现接口位置给换地方了。现在的接口位置位于IRequestHandler.GetResourceRequestHandler ->IR...

2020-08-05 20:22:48 9485 3

原创 c#、cefsharp 获取、提取 img、image 图片标签二进制数据

主要是为了用cef做自动登录时打码用,但是又不想通过拦截response,因为那样太不够直观。标签内容为:<img src="Image.do?_timesShow=2&amp;ran=100509925" title="点击更换图片!" alt="" class="sz" onclick="this.src='Image.xx?ran='+Math.random()" style="padding-top:4px;padding-left:10px;">图片显示为链接..

2020-07-08 10:55:19 7140 2

原创 c# 更改弹窗MessageBox按钮文字

需要用到hook,具体hook类在附件里,此hook类也是网上扒来的,忘了地址了。。。。否则作为尊重应该贴上原文地址的。。。原hook类写了有键鼠hook,MessageBox 是我后添加的,如果有其他hook也可以参照我的方式自己添加。详解自定义hook:(以下都是hook类里有的,不需要再复制添加)具体调用方式在末尾的第二个代码段内有,复制过去就可以用首先定义一个事件,在写对应的钩子回调函数,在函数类触发事件即可,至于事件的具体执行什么动作则在外部定义hook时设置,和注册控件的事件一.

2020-06-14 11:16:19 6431 3

原创 MailKit的使用心得

Mailkit 支持 Pop3、IMAP,STMP是目前.Net端最全的邮件开源项目了。1、Pop3:跟其他的pop3操作类没有太大区别,跟OpenPop.NET等都差不多2、IMAP:功能上比Pop3要强大太多,优势是功能强大、可以搜索邮箱的所有文件夹,Pop3只能搜索INBOX(收件箱),如果要做收信,还是IMAP首选。缺点是每一次操作都会与服务器同步,比如读取了邮件,服务器上也会变为...

2019-04-12 06:57:15 7142

原创 Geckofx拦截http response、http响应内容、http返回内容、

找了整整两天,在大海捞针之后,终于在上古代码中找到了一个可用的。。。。可以用喜极而泣来形容测试有效之后的心情!!!跟cefsharp相比geckofx最大的优点就是模式更接近于IE,包括node、xml、xpath以及单独设置cookie等。但是资料、问答等实在是太古老太古老了。如果已入坑geckofx的朋友,请一定要记住,遇到问题先不用去满世界搜索,请第一时间去官网的 Issues 版块搜索关键...

2018-07-02 15:03:59 2952 3

原创 Geckofx偏好设置

GeckoPreferences.User["gfx.font_rendering.graphite.enabled"] = true;//设置偏好:字体GeckoPreferences.User["privacy.donottrackheader.enabled"] = true;//设置浏览器不被追踪GeckoPreferences.User["general.useragent.overri...

2018-05-08 10:45:53 2047 2

原创 Geckofx弹出下载保存框

最近养成一个好习惯,遇到不会的事了就去源码找找之前一直以为像弹出保存框和右键菜单这些基本功能,应该都配套的有的,后来发现这些全部都要自己实现,而在 源码里官方其实已经把大多数的方法都写好了,可以直接提出来就用。比如:弹出下载保存框var mainForm = new MyForm();首先官方写了一个窗口类,用来弹出下载界面Gecko.LauncherDialog.Download += (s, ...

2018-05-08 10:30:57 1482 2

原创 Geckofx使用心得(一)

写这篇的目的很简单,从萌新到熟悉,我花了2个月时间,甚至花钱买过一个网站的垃圾demo,深受其烦,希望可以让入坑Geckofx 的新手少走一些弯路,做WebBrowser目前有3中方案,1、基于 IE 的WebBrowser控件2、Geckofx3、CefSharp如果你只是做最简单基础的功能,就直接用自带的WebBrowser控件既可(比如简单的访问、取值)如果你要做的...

2018-05-05 09:46:36 16956 15

c# Hook类.rar

键鼠hook,MessageBox Hook,更改 MessageBox 按钮文本,更改弹窗按钮文本

2020-06-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除