上一页 1 2 3 4 5 6 7 8 ··· 11 下一页
摘要: 界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。目前界面的设计引起软件设计人员的重视的程度还远远不够,直到最近网页制作的兴起,才受到专家的青睐。而且设计良好的界面由于需要具有艺术美的天赋而遭拒绝。 目前流行的界面风格有三种方式:多窗体、单窗体以及资源管理器风格,无论那种风格,以下规则是应该被重视的。1:易用性:按钮名. 阅读全文
posted @ 2012-01-30 15:36 Lance Yang 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 以前发表过《通过监听Windows消息对复合控件进行整体控制(C#)一 》两篇,讲述了通过FrameWork框架提供的技术监听Windows消息来实现事件的路由,但部分实现并不是很好,而且有部分功能并不能很好解决控件的事件,此篇通过对原方法进行改写,有些实现通过调用Windows API辅助解决,基本上解决了控件的键盘和鼠标事件的路由。(JS和WPF有事件路由的功能) 实现 IMessageFilter 接口 和 注册控件的鼠标和键盘事件等对外接口请参考《通过监听Windows消息对复合控件进行整体控制(C#)一 》,内部的实现通过使用Windows API 使代码更严谨和清晰。 使用到的部. 阅读全文
posted @ 2012-01-29 13:19 Lance Yang 阅读(3253) 评论(4) 推荐(3) 编辑
摘要: You've been tinkering with threading. Drag+Drop doesn't like threads. It will only work on threads that are properly initialized with Thread.SetApartmentState() to select STA and that pump a message loop with Application.Run() or Form.ShowDialog().1、加[STAThread]2、Thread t = new Thread(new Th 阅读全文
posted @ 2012-01-10 10:34 Lance Yang 阅读(701) 评论(0) 推荐(0) 编辑
摘要: 因为有个地方判断图像的格式,原先是通过Image类来判断,觉得不是很好,上网查找了通过文件头2个字节来判断,可原文不是很好,有些地方不对,现把修改后的代码上传以供大家复制。 /// <summary> /// 实现通过文件头2个字节判断图片的格式。 /// </summary> public class ImageTypeCheck { static ImageTypeCheck() { _imageTag = InitImageTag(); } private static SortedDictionary<int, ImageType> _imageTa 阅读全文
posted @ 2012-01-05 15:45 Lance Yang 阅读(3410) 评论(0) 推荐(0) 编辑
摘要: 原文:http://topic.csdn.net/u/20090407/13/371533da-f709-4f1f-bda9-b4a18060e713.html?seed=924471686有时候我们需要对集合中的自定义对象进行排序,以最原始的 System.Array 为例,如 Person[] people = new Person[]{ new Person(3, "Andy", new DateTime(1982, 10, 3)), new Person(1, "Tom", new DateTime(1993, 2, 10)), new Pers 阅读全文
posted @ 2011-12-28 11:37 Lance Yang 阅读(320) 评论(0) 推荐(1) 编辑
摘要: 昨日看到一篇文章 《Linq的Distinct太不给力了》,文中指出 Linq 中 Distinct 方法的一个重载使用了 IEqualityComparer<T> 作为参数,调用时大多都要创建新的类去实现这个接口,很不给力。文中给出了一种解决办法,略显烦索,我也写了《c# 扩展方法 奇思妙用 基础篇 八:Distinct 扩展》一文使用扩展方法予以简化。但问题远远没有结束,不给力是因为使用了 IEqualityComparer<T> 作为参数,而 .net 中将 IEqualityComparer<T> 用作参数的地方相当多:IEqualityCompar 阅读全文
posted @ 2011-12-28 10:45 Lance Yang 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 1.控件与消息函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeIconicWindows 排列一个父窗口的最小化子窗口 AttachThreadInput 连接线程输入函数 BeginDeferWindowPos 启动构建一系列新窗口位置的过程 BringWindowToTop 将指定的窗口带至窗口列表顶部 CascadeWindows 以层叠方式排列窗口 ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 ClientToScreen 判断窗口 阅读全文
posted @ 2011-12-25 21:43 Lance Yang 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 有段时间打开一个解决方案,VS总是报一个 devenv.exe 应用程序错误,你点确定的时候,做个VS就会退出,重新再来一次,情况一样。解决方法: 打开另外一个解决方案,发现比较正常,证明不是VS有问题,一种做法:当报错误时,先不去点确定,因为确定后,VS就退出了,等待解决方案加载完成后,在代码的Tab上鼠标右键,点击“除此外全部关闭”,然后全部保存。下次再加载解决方案时就正常了。 本人猜测:可能是某些控件或窗体,在加载时需要显示,引起IDE出错。有时,上方法也做不了,可能是进程已经给卡死了,根本操作不了。有时从VSN重新Update整个项目,加载又正常了,从这里可以看出,解决方案是保存本地. 阅读全文
posted @ 2011-12-12 15:39 Lance Yang 阅读(8993) 评论(3) 推荐(1) 编辑
摘要: .net framework 3.5 有了Linq使得对委托有了更多的支持,下面让我们来看几个有趣的示例.通常情况下,我们实现一个递归算法要写一个函数,同时还有调用的几行代码. 现在来看使用Linq的如何实现简洁的代码,代码如下:using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using NUnit.Framework; namespace WindowsFormsApplication1 { /// <summary> // 阅读全文
posted @ 2011-11-29 16:28 Lance Yang 阅读(1377) 评论(0) 推荐(0) 编辑
摘要: LINQ TO SQL中的selectMany 首先看SelectMany的定义: Queryable中的SelectMany 方法:将序列的每个元素投影到一个 IEnumerable<(Of <(T>)>) 并将结果序列组合为一个 IQueryable<(Of <(T>)>) 类型的序列。(引用MSDN) 在用LINQ TO SQL 来写查询语句时,有一个selectMany的语句,它标示着一对多的关系,这篇文章我想说下在LINQ TO SQL中几种可以等同selectMany的用法。 系统转换成selectMany的条件: 1:语句中不包含j 阅读全文
posted @ 2011-11-29 16:27 Lance Yang 阅读(321) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页