随笔分类 -  .Net

摘要:不好意思各位同学,本系列文章更新比较慢,因为我也要工作,况且还需要抽出时间编码验证理论,当然找借口总归是不好的,我们都是人,需要休息与娱乐嘛。 其实.net平台已经有自己的插件框架,比如MEF,MAF这些都是.net自带的框架,前者注重灵活,后者注重物理隔离。不过这不是今天的重点,今天的重点是做我们自己的框架。 第一步:插件模型设计 既然是插件框架就会有插件,就会有放插件的地方,我们就需要设计插件容器,这样既可以灵活的管理插件,也使代码的层次结构更加清晰,图示紫色部分是插件与插件容器部分,外边蓝色的就是我们需要使用插件的拥有者,我发现一张图片的效果远比一堆庸俗的文字效果来的更直接,所... 阅读全文
posted @ 2013-05-26 22:15 广林 阅读(2558) 评论(7) 推荐(4) 编辑
摘要:我想很多人都有想写一个自己框架的愿望,然后各种应用都可以使用。可是由于各种原因,很多时候也是在想象中,并没有自己一步一步去实现,而我也是这其中的一员。不管你是新手跟着我一起做还是大牛批评指点,欢迎访问,不管是板砖还是表演既然来了何不留下痕迹做纪念呢? 人生需要规划,架构也一样,没有计划的最终会偏离原先的设想。 就像阿甘正传中给船起名字一样,没有名字的船是不吉祥的,所以他给船起了珍妮号,他最喜欢女孩的名字。我也给自己框架起个名字吧,本人光棍一个,就起我外号广林的缩写吧GL。 首先,指定我们的初步目标,我希望我的框架涉及以下功能点1.首先语言使用C#语言2.我们要做的是CS架构3.另外我... 阅读全文
posted @ 2013-05-18 11:04 广林 阅读(2775) 评论(7) 推荐(1) 编辑
摘要:进来搞Window打印,发现还是很好弄的,就是在PrintDocument上画,跟在Canvas画一样,要什么样子就画什么样子,先上示例代码private void button1_Click(object sender, RoutedEventArgs e) { var printDocument = new PrintDocument(); //指定打印机 printDocument.PrinterSettings.PrinterName = "Microsoft XPS Document Writer"; ... 阅读全文
posted @ 2013-04-27 15:43 广林 阅读(18538) 评论(6) 推荐(4) 编辑
摘要:使用TreeView时,很多人都应该遇到过当数据项特别多的时候,界面加载很慢的情况,用户体验很差,为了解决这个问题,这里我想到使用延时加载子项的方法去实现,即:我们显示的数据项,用户不一定所有项都很用到,初始化时,我们只加载根节点数据显示在界面,当展开根节点时,只加载根节点子项的数据,子项的子项数据不加载,依次类推,这样就解决了一次加载很多数据,界面初始化需要很长时间的问题。 最近在看X女特工,感觉还可以,一个国家的成立需要牺牲很多人,其中也包括很多无辜的人,一份最终走到一起爱情也不是一天两天就可以,彼此都有许多苦衷,我觉得,最重要还是相互信任,不管对方做什么信任是很重要的,事实总会有一... 阅读全文
posted @ 2013-04-18 15:03 广林 阅读(919) 评论(0) 推荐(0) 编辑
摘要:有时候我们为了方便使用TreeView,会改变它的ItemTemplate的模板,但是有时候,我们无法获取TreeView的SelectedItem,如下是在TreeViewItem添加一个多选框的模板,当我们单击CheckBox时,TreeView的SelectedItem就为null,即使界面选中一项,再改变其它项的值时,我们获得的SelectedItem也是界面选中的哪项,而不是我们改变值的那项,这不符合我们的要求,我希望当我改变任何一项的值时,获取的是改变值这项的TreeViewItem或者其相关联的数据项。<TreeView.ItemTemplate> <Hiera 阅读全文
posted @ 2013-04-09 20:51 广林 阅读(2236) 评论(2) 推荐(0) 编辑
摘要:进来由于需要分析VS的工程结构,大家都知道以.sln结尾的就是vs的解决方案文件废话不多说,首先查看下一个简单的sln文件结构Microsoft Visual Studio Solution File, Format Version 11.00# Visual Studio 2010Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApplication1", "ConsoleApplication1\ConsoleApplication1.csproj", &qu 阅读全文
posted @ 2013-04-07 20:27 广林 阅读(4149) 评论(3) 推荐(2) 编辑
摘要:长昼慢慢,无心工作,没有终点的等待未免不让人烦躁,默默无闻随波逐流,每天除了上下班的生活不免有些烦躁,工作最大的乐趣莫于在忙里偷闲干点自己喜欢做的事情了。有时候心中总有些冲动去做自己想做的事情,渐渐的被生活磨圆了锋利的棱角。 生活归生活,活就要活的精彩,工作还得继续,进来由于项目中需要,在做打印的时候希望列内容可以自动换行,就是固定列宽,超过宽度了就可以自己换行,现有打印又不支持自动换行,想想想自己解决算了,既然是换行,列内超出部分打印到本列下一行不就可以了吗?有想法就要付出实际行动去证明。 由于项目中用的打印机是针式打印机,每行打印的字符数是固定的104,每个汉字所占的宽度为英文字符... 阅读全文
posted @ 2013-03-31 16:40 广林 阅读(1692) 评论(1) 推荐(0) 编辑
摘要:东去春来,春雨绵绵,又是崭新的一年,喜欢雨天,不仅可以懒懒的宅在宿舍了,更是充满的淡淡的诗意,总让人觉得流恋,回想往事如过眼云烟。近来看甄嬛传,里面让人流泪的颇多的,让人感受也是颇多,有些画面也是令人难以忘怀,看的近来思家情节骤增,甄嬛当时的多么的深爱皇帝,是皇帝伤她至深,每每回忆便有些怜惜。 好吧,扯远了,切入正题,今天就写写关于XML序列化吧,序列化有对象序列化,有XML序列化,对象序列化就是在类上标记 [Serializable]标记的,一般用于对象的持久存储与网络传输。 XML序列化需要引用System.Xml程序集,System.Xml.Serialization命名空间,这... 阅读全文
posted @ 2013-03-25 12:53 广林 阅读(638) 评论(2) 推荐(0) 编辑
摘要:在项目中经常会遇到从数据库查询数据绑定到TreeVIew上,这时我们需要将查询出来的数据转换成树形结构数据,每次写觉得工作会很重复,所以写了一个通用的转换类。第一步,我们需要建一个基类,这个基类的意义主要是扩展数据库实体类做连接用,用于确定树形结构中节点与子项的关系,其中Parent为当前节点的父节点,Children为当前节点的子节点,IsLinked是判断当前节点是否已连接,用于防止数据中有循环依赖导致创建树的时候形成死循环。TreeModel基类public class TreeBase<T> { private bool isLinked = false; ... 阅读全文
posted @ 2013-03-13 16:48 广林 阅读(2500) 评论(5) 推荐(3) 编辑
摘要:有时候我们datagridview绑定数据后,由于需要想再刷新,重新绑定,这时候,列的位置可能会改变解决方法是:1.设置 dataSource 的时候需要先清空以下数据,比如:this.dgv.DataSource = null; this.dgv.DataSource = dt; 2.设置显示列的位置this.dgv.Column["columnName"].DisplayIndex=5; 阅读全文
posted @ 2011-05-05 16:00 广林 阅读(2631) 评论(1) 推荐(0) 编辑
摘要:DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByValue(xxx));通过FindByValue没有找到指定项返回值为null,而Items.IndexOf(null)会返回-1 阅读全文
posted @ 2011-04-27 15:10 广林 阅读(196) 评论(0) 推荐(0) 编辑
摘要:主要原因是 引用的项目 .net 版本与启动的框架不同 我的电脑->右键管理->internet信息服务->默认网站->右键属性->ASP.NET->> 更改相应的asp.net版本即可 阅读全文
posted @ 2011-04-25 11:25 广林 阅读(4835) 评论(0) 推荐(0) 编辑