摘要:
DataGridView的分级显示,如果想找相关的第三方控件的时候,可以在codeproject中输入datagridview outlook,有个控件,看上去还是很不错的。下面的代码只是简单的实现了这个效果,感觉没必要重写控件。 有图有真相,先看看效果图吧。 好了,这个功能一看就知道了,下面给出完成的代码(数据源的绑定就省略了,思路明白就OK,呵呵)代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> #region绘制单元格private 阅读全文
摘要:
因为最近在做一些有关数据库方面的开发,其实,说白了,就是对数据库的CRUD操作,写了n多的存储过程,倒不是说存储过程多难,关键是在后期的维护方面有点头疼,没办法,研究一下ORM吧。 下面分别是用NHibernate和Linq实现的简单的CRUD操作,当是一开始的练练手(开关环境:VS08+SQL2000)。 ①:NHibernate不管三七二十一,先看看实体类吧。(数据库代码省略,映射... 阅读全文
摘要:
很长时间没写了,不知道要写点什么,上篇中提到过会把游戏的寻路算法贴上,后来因为很长一段时间忙着其他的事情,还没来着及整理(最近就把他贴出来)。既然这次的标题是数据库方面的,那就请我们回归正题吧。在.net中通常会遇到这样的需求,就是要将数据库中最新的数据同步显示在winform中,总结一下可以实现的几种方法。 自己也尝试了一段时间,结合网上其他前辈的指点,大致有以下几种方法可以实现(仅个人观点) ... 阅读全文
摘要:
玩游戏的人,都知道游戏中有自动寻路功能,鼠标点击想要到达的终点,主角则会自动走最短的一条路当然同时躲避障碍物,好了,不用多说,直接看效果吧(直观)。 绿色表示起点,红色表示终点,蓝色表示障碍物,而会动的表示从起点运动到终点的轨迹。 上面用的是寻路算法之曼哈顿算法,具体的表述可以参看http://hi.baidu.com/myfcag/blog/item/48bd91fd012a0bf6fd037... 阅读全文
摘要:
在之前的博客随笔中提到过CAD中鼠标的悬浮功能,后来就一直在想可不可以在CAD中触发Key事件,之后在Kean的一篇博文中提到过关于捕捉键盘事件,可惜不太实用,比如想通过键盘的上下键来移动一个实体。效果就像下面这样 后来就想用钩子实现吧,然后在网上找KeyHook之类的信息,现成的代码真是太多了,现在贴出这部分网上找到的代码代码Code highlighting produced by Actip... 阅读全文
摘要:
这部分我们重点看看数据库中CRUD的测试。首先要建立一个表UserInfo(ID(主键),UserName,Password,Age).第一步:建立一个连接数据库的类,测试数据库的连接是否成功。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-- pu... 阅读全文
摘要:
第二部分中提到用XML文件保存测试的案例数据,然后在程序中可以一次性的读取数据,而不需要为每一种可能的数据集合写一个Case。首先,需要定义一个XML的文件,下面是我定义的一个XML文件(CaseFile.xml)。代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighte... 阅读全文
摘要:
作为单元测试的第二部分,和第一部分的间隔时间差的的确有点长了(嘿嘿,自己一直在偷懒)。在第一讲中主要讲的是如何在VS2005中进行单元测试,以及当时选NUnit2.48(.net 2.0)作为学习的版本,和进行了一个小个程序的测试,大致上都知道如何使用NUnit对C#编写的代码如何进行单元测试,而在这一讲中则是主要讲讲几个常用的属性(Attribute)。先写一个小小的程序,功能只是在一个数组中找... 阅读全文
摘要:
先简单的介绍下同步和异步委托: (1)同步委托:委托的Invoke方法用来进行同步调用。同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行。 (2)异步委托:异步调用不阻塞主线程,而是把调用在线程池中的新线程中执行,我们可以不必关心,也无需关心这个“新线程”是怎么定义的委托的异步调用通过BeginInvoke和EndInvoke来实现。 直接... 阅读全文
摘要:
在CAD2006中,可以借用Editor的两个事件来实现鼠标的悬浮显示信息的功能,即ToolTip。这两个事件都可以实现ToolTip的功能。具体代码如下:代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--Editored=Application.... 阅读全文
摘要:
①:default在泛型中,要为某个使用泛型的变量初始化值,可是我们需要考虑的是这个泛型可能是引用类型,也可能是值类型,这时我们可以借助default来完成初始化复制。T value = default(T);如果T是引用类型,value = null,如果是T是值类型,value = 0.②:where 约束 说明 where T:struct 使用结构约束,类型T必须是... 阅读全文
摘要:
在CAD的二次开发中,有时会使用JIG技术来实现操作的动态性、交互,最常见的比如说是在CAD中定制自己的移动和复制,当然要保持CAD中原有的动态显示效果。 在JIG中我们可以继承EntityJig和DrawJig,对于这两个类,那这两个类有什么区别呢?他们的使用场合又有什么区别呢?其实,他们之间在操作一些简单的实体的时候是没有多大区别的,硬要说区别的话,那就是在实现一个相同功能时DrawJig比E... 阅读全文
摘要:
①: 隐藏实体 在CAD的开发中,有时候我们需要根据用户的需求隐藏和显示一些实体,对于实体本身的属性Visible当然可以实现隐藏、显示实体,不过,除此之外,我们还可以将一个层上的实体同时隐藏起来,这就要使用LayerTableRecord中的IsOff属性,并且隐藏的实体ObjectId可以出现在SelectAll()的集合中.当然,他们之间还是有区别的,当你用Ctrl+A,选中当前... 阅读全文
摘要:
单元测试Nunit第一部分,主要介绍Nunit的入门信息 阅读全文