2013年7月10日

bitmap对象被破坏而报错的解决方案

摘要: new Bitmap(image); 阅读全文

posted @ 2013-07-10 20:18 yao2yao4 阅读(156) 评论(0) 推荐(0) 编辑

BackgroundWorker

摘要: Constants.Worker = new BackgroundWorker();Constants.Worker.WorkerSupportsCancellation = true;Constants.Worker.DoWork += delegate { while (!Constants.Worker.CancellationPending) { Thread.Sleep(1000); for (int i = 0; i < ProgramStatus.ChannelCount; i++) ... 阅读全文

posted @ 2013-07-10 14:38 yao2yao4 阅读(152) 评论(0) 推荐(0) 编辑

2013年7月9日

Winform跨线程操作界面的策略

摘要: BeginInvoke(new ThreadStart(() => toolStripButton1.Text = "aaa"));1、非跨线程操作和部分跨线程get不会引发异常;2、跨线程set,见上面的例子。3、部分跨线程get,见下面的例子。var a = (int)EndInvoke(BeginInvoke(new Func(() => toolStripComboBox1.SelectedIndex)));public static class UIInvokeHelper{ public static void InvokeUI(this Form 阅读全文

posted @ 2013-07-09 17:29 yao2yao4 阅读(399) 评论(0) 推荐(0) 编辑

Winform DataGridView扩展

摘要: public class ObjectPropertyCompare : IComparer{ private readonly PropertyDescriptor property; private readonly ListSortDirection direction; public ObjectPropertyCompare(PropertyDescriptor property, ListSortDirection direction) { this.property = property; this.direction = di... 阅读全文

posted @ 2013-07-09 08:22 yao2yao4 阅读(444) 评论(0) 推荐(0) 编辑

2013年7月1日

GDI+的常用类

摘要: VisualStyleRenderer提供用于绘制和获取有关 System.Windows.Forms.VisualStyles.VisualStyleElement 的信息的方法。VisualStyleInformation提供有关操作系统的当前视觉样式的信息。ControlPaint提供用于绘制常用 Windows 控件及其元素的方法。CreateParams封装创建控件时所需的信息。GraphicsPath表示一系列相互连接的直线和曲线。Region指示由矩形和由路径构成的图形形状的内部。Matrix封装表示几何变换的 3x3 仿射矩阵。 阅读全文

posted @ 2013-07-01 06:25 yao2yao4 阅读(287) 评论(0) 推荐(0) 编辑

2013年6月27日

函数中参数的验证顺序

摘要: 如果函数A被函数B、C、D调用,在A的开始处进行参数验证,在B、C、D中就不需要进行验证了。如果函数A声明了一个NullArgumentException,在B、C、D中可分别对这个信息进行处理。如果B中传给A的参数是自己产生的,已经赋值了,B就可以无视这个信息。如果C中传给A的参数是由自己的参数产生的,不知是否为空,C就需要在自己的参数异常声明中提供出来。 阅读全文

posted @ 2013-06-27 20:24 yao2yao4 阅读(180) 评论(0) 推荐(0) 编辑

2013年6月25日

C# Winform常见的Editor及其它经验

摘要: 1、新建一个自定义Editor,继承自.NET自带的Editor,override某些方法,再附加到属性中:public class MyCollectionEditor : CollectionEditor{ public MyCollectionEditor(Type type) : base(type) { } protected override void ShowHelp() { MessageBox.Show("别点了,点了也没用。"); }}[Editor(typeof(MyCollectionEditor), typeof(UI... 阅读全文

posted @ 2013-06-25 22:02 yao2yao4 阅读(7741) 评论(0) 推荐(2) 编辑

2013年6月24日

能够引起异常的运算符和关键字

摘要: 算术运算符OverflowException整数被零除DivideByZeroException 阅读全文

posted @ 2013-06-24 19:39 yao2yao4 阅读(145) 评论(0) 推荐(0) 编辑

2013年6月22日

终结程序

摘要: Environment.FailFast 阅读全文

posted @ 2013-06-22 19:54 yao2yao4 阅读(121) 评论(0) 推荐(0) 编辑

C#异常处理策略

摘要: 1、如果某些异常,本组件无法处理,不要捕获,但要声明有这个异常。例如SecurityException。2、如果某些异常,本组件可以处理,捕获并处理它,不再声明此异常。例如DirectoryNotFoundException。3、正常的业务逻辑不要用异常来处理。4、不要创建新的异常。5、程序顶层要捕获所有的异常,影响程序继续运行的,提示错误并退出程序。6、异常的声明是需要继承的,除了已被处理的、不会再发生的、程序无法正常运行的异常。7、尽量少的捕获异常,所以尽量在高层捕获异常。8、尽量不在低层捕获异常,而是采用判断并抛出新异常的方法。9、针对参数(==null,.Length==0,.Coun 阅读全文

posted @ 2013-06-22 07:56 yao2yao4 阅读(279) 评论(0) 推荐(0) 编辑

导航