AhDung

/*追求代码质量的野生码农*/

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  C#

摘要:如题,市面上常见的方法是: 此法的问题是,如果图像是透明背景,那么得到的Icon的边缘就是毛糙的,像是先垫了一层背景色然后再去色的效果,很不如人意,用过的朋友都知道。尚未研究是bmp.GetHicon出的问题,还是Icon.FromHandle有问题,日后有闲心再捣鼓下。 下面给出完美转换方法: 如 阅读全文
posted @ 2016-09-22 20:28 ahdung 阅读(5894) 评论(7) 推荐(6) 编辑

摘要:201610212046更新 更新至2.0版,基本完全重写,重点: 改为基于原生LayeredWindow窗体和UpdateLayeredWindow API呈现动画,完全摒弃.net Form,这种消息框用前者再适合不过,后者对于这种场景过于臃肿了 更高更快更强,更酷更炫更拉轰 可自由定制若干消息 阅读全文
posted @ 2016-08-27 19:08 ahdung 阅读(8221) 评论(97) 推荐(53) 编辑

摘要:注:本文适用.net2.0+的winform程序 一个winform程序,我希望它不能多开(但是如何防多开不是本文要讲的),那么在用户启动第二个实例的时候,作为第二个实例来说,大概可以有这么几种做法: 显然第3种做法更地道,实现该效果的核心问题其实是:如何显示指定进程的窗口? 首先想到的是调用Sho 阅读全文
posted @ 2016-05-17 14:02 ahdung 阅读(6907) 评论(6) 推荐(10) 编辑

摘要:注:本文适用.net 2.0+的winform项目 目的: 点击页面中的target="_blank"链接时,弹出新窗体 页面中有window.close()操作时,关闭窗体 上述窗体是指WebBrowser所在的Form,基本上,上述目的就是让该窗体表现得像个正常浏览器而已。 一、弹出新窗体 We 阅读全文
posted @ 2016-03-30 16:17 ahdung 阅读(2385) 评论(2) 推荐(0) 编辑

摘要:泛型约束更强大。比如支持有参构造函数、枚举、委托: void Foo<T>() where T : new(string, int), enum, delegate 空值判断符允许对属性/字段赋值: obj?.Name = "sdf"; //obj为null则什么也不做 索引器支持泛型: publi 阅读全文
posted @ 2016-01-28 19:04 ahdung 阅读(2190) 评论(32) 推荐(7) 编辑

摘要:刚上线一个新版本,其中有台电脑打开软件就报【xx的类型初始值设定项引发异常】(还好不是一大波电脑,新东西上线就怕哀鸿遍野),如图: 显然是该类型的静态构造函数中抛异常了(红线处就是类名),遂打开该类,其构造函数中唯有一句看起来可能引发异常,即: Process.EnterDebugMode(); / 阅读全文
posted @ 2016-01-27 15:21 ahdung 阅读(5264) 评论(1) 推荐(0) 编辑

摘要:环境:.net 2.0 DataRow的行状态一段时间不用就会吃不准,记录一下,备查。 行属于如下状态时进行右边操作→ 后的状态演变 添加到表 dt.Rows.Add() 修改单元格值 row[x] = xx 标记删除 row.Delete()【注1】 提交 dt/row.AcceptChanges 阅读全文
posted @ 2016-01-09 15:49 ahdung 阅读(1146) 评论(1) 推荐(0) 编辑

摘要:项目输出目录(bin/debug|release)中经常是这个样子:main.exemain.pdb a.dlla.xmlb.dllb.pdbb.xml...其中xml是同名dll的注释文档,pdb是调试库。我们最终应该只想要exe和dll,除了手工删,我知道的有两招,可以让项目生成后,xml和pd... 阅读全文
posted @ 2015-11-06 10:04 ahdung 阅读(1998) 评论(2) 推荐(0) 编辑

摘要:问题如图:如果先点【生成】项目,再按F5调试就不会报错,但稍后修改代码后再次调试,会发现VS启动的是代码修改前的程序,也就是说,深一层的问题其实是调试时不会先生成,而是直接打开debug/release目录中已经存在的exe,所以如果exe不存在,调试就会报上图的错误。搜到的办法主要有两种:- 重置... 阅读全文
posted @ 2015-11-05 18:33 ahdung 阅读(9547) 评论(0) 推荐(0) 编辑

摘要:实际报错如图:如果你跟我一样是在折腾Asp.Net WebApi 2.x时遇到这个问题,请参看如下办法:删除现有System.Net.Http.Formatting引用(如果引用了的话)重新引用【解决方案目录\packages\Microsoft.AspNet.WebApi.Client.5.2.3... 阅读全文
posted @ 2015-10-21 17:35 ahdung 阅读(7515) 评论(0) 推荐(1) 编辑

摘要:适用于:.net2.0+ Winform项目------------------201508261813更新(源码有更新、Demo未更新)------------------重新绘制调整大小手柄(SizeGrip,右下角那个),因为系统自绘的太靠边角,在XP下会盖过那部分边框,视觉体验不好。改进如图... 阅读全文
posted @ 2015-08-24 08:46 ahdung 阅读(5985) 评论(27) 推荐(24) 编辑

摘要:201806111122更新 更新至2.0。主要是增加自定义按钮文本的功能,另项目已放到https://github.com/ahdung/MsgBox,欢迎f**k 201507160917更新 无意中发现标准消息框在Windows7是有声音的,只是在Windows server 2008(R2) 阅读全文
posted @ 2015-07-08 20:14 ahdung 阅读(7235) 评论(20) 推荐(9) 编辑

摘要:问题如图:并且手工编辑好AssemblyInfo.cs也不行,进入程序集信息窗体时,仍然是一片空白。尝试:在项目文件中(csproj文件,任意文本编辑工具可打开)的节点下仔细找找Include项,是否有重复。比如这样的: ...有的话,剔除重复。一般在使用Reflector等工具搞到的项... 阅读全文
posted @ 2015-06-26 10:54 ahdung 阅读(696) 评论(0) 推荐(0) 编辑

摘要:注:这里的服务是指Windows 服务。------------------201508250915更新------------------刚刚得知TransactedInstaller类是支持带参数安装服务的,在此感谢猿友KOFIP的指教和代码,详情请见回复。------------------2... 阅读全文
posted @ 2015-06-18 20:56 ahdung 阅读(2802) 评论(10) 推荐(2) 编辑

摘要:本文适用Winform开发,且DataGridView的数据源为DataTable/DataView的情况。理解前提:熟知DataTable、DataView求:更好方案考虑这样一个场景:某DataTable(下称dt)的B列是计算列(设置了Expression属性),是根据A列的数据计算而来,该d... 阅读全文
posted @ 2015-05-28 15:44 ahdung 阅读(9104) 评论(3) 推荐(3) 编辑

摘要:样子:支持系统:WindowsNT 5.x/6.x32及64位所有系统。需.net framework 2.0运行环境功能:清理上述系统中冗余的Windows Installer补丁文件。有如下特点:高效扫描+清理,并有进度反馈可选择清理指定文件可排序可选择删除到回收站,或直接删除说明:类似工具有几... 阅读全文
posted @ 2015-05-22 19:44 ahdung 阅读(4535) 评论(13) 推荐(2) 编辑

摘要:---------------201504170911更新---------------更新内容:删除bgwUI新增的Start方法,改为通过new修饰符+可选参数的方式同时覆盖基类(BackgroundWorker)的RunWorkerAsync有参和无参俩方法。所以执行任务仍旧使用熟悉的RunW... 阅读全文
posted @ 2015-04-16 17:13 ahdung 阅读(2855) 评论(5) 推荐(9) 编辑

摘要:-------------201504161039更新-------------更新内容:IWaitForm接口删除System.Windows.Forms.DialogResult DialogResult属性。即隐藏等待窗体的方式不再分为设置DialogResult和调用Hide()两种,改为仅... 阅读全文
posted @ 2015-04-15 15:14 ahdung 阅读(4513) 评论(6) 推荐(15) 编辑

摘要:之前写过一个合并字符串的CLR聚合函数,基本是照抄MS的示例,外加了一些处理,已经投入使用很长时间,没什么问题也就没怎么研究,近日想改造一下,遇到一些问题,遂捣鼓一番,有些心得,记录如下。一、杂项CLR聚合函数在SQL中虽然是函数,但在C#中实际上是以一个类或结构的形式存在的(是的,实现聚合函数的实... 阅读全文
posted @ 2015-03-30 09:59 ahdung 阅读(1136) 评论(0) 推荐(2) 编辑

摘要:申明:- 本文适用于WinForm开发- 文中的“控件”一词是广义上的说法,泛指包括ToolStripItem、MenuItem在内单个界面元素,并不特指继承自Control类的狭义控件用过ToolTip这个组件的童鞋都知道这样一个现象:在VS中拖入一个ToolTip,然后点击窗体中的各种控件,在其... 阅读全文
posted @ 2014-12-17 16:26 ahdung 阅读(3678) 评论(2) 推荐(7) 编辑