摘要:
在写CS框架第2版时遇到换肤问题,最初设计思路是建立一个窗体frmBase,继承XtraForm,在窗体拖放一个DefaultLookAndFeel控件,项目内所有窗体都继承frmBase类。在frmBase_Load事件内设
this.DefaultLookAndFeel.LookAndFeel.SkinName = skinName就可以设置皮肤。然而,这种设计带来一个问题: 当打开一个窗体时加载两次皮肤引起NavBarControl控件闪烁! 阅读全文
摘要:
第一步:让所有窗体都从DevExpress.XtraEditors.XtraForm继承。
第二步:添加两个引用:
DevExpress.BonusSkins.v8.1DevExpress.OfficeSkins.v8.1
阅读全文
摘要:
学习要点
1.C#操作Access数据库,实现增/删/改/查功能
2.实现从Excel导入数据到Access数据库
3.简单的MDI框架实现(学习重点!!!)
4.业务逻辑分层(界面展示层,业务逻辑层,数据访问层)
5.接口应用,创建观察者模式
6.C/S结构的系统框架设计
阅读全文
摘要:
如对线程的操作不正确,在跨线程调用Windows窗体控件时会有产生InvalidOperationException异常。
该异常提示[线程间操作无效: 从不是创建控件“listBox1”的线程访问它.]。
我相信很多人通过设置Control.CheckForIllegalCrossThreadCalls属性为false禁止捕获对错误线程的调用。
这种强制性的禁止捕获不是人性化的选项。
我们可以通过控件的Invoke方法来实现跨线程调用Windows窗体控件。
阅读全文
摘要:
委托 (Delegate)
委托是一种定义方法签名的类型,可以与具有兼容签名的任何方法关联。您可以通过委托调用方法。委托用于将方法作为参数传递给其他方法。事件处理程序就是通过委托调用的方法。
与委托的签名匹配的任何可访问类或结构中的任何方法都可以分配给该委托。方法可以是静态方法,也可以是实例方法。这样就可以通过编程方式来更改方法调用,还可以向现有类中插入新代码。只要知道委托的签名,就可以分配您自己的方法。
阅读全文
摘要:
观察者模式应用非常之广,是我最喜爱的设计模式之一。
常用的数据库管理系统中有这种情况:
客户要求数据字典改变后要实时更新相关业务窗体的数据。
如下图[销售单]和[采购单]业务窗体中分别有货币和单位数据字典选择框。货币和单位数据是在打开窗体
时加载的,假设客户需要增加一个货币或单位,在不关闭[销售单]和[采购单]窗体的前提下,如何使货币和单位数据保持最新?
阅读全文
摘要:
IConnectionList接口定义 阅读全文
摘要:
ChatClientLib类是本程序相当重要的一个类,包括监听消息,用户管理,发送消息及处理未读消息等功能。 阅读全文
摘要:
本程序是C#仿QQ程序的精简版,并做了大量优化处理,包括全新界面设计及删除部分冗余代码。
本程序是网络编程基础篇的最佳教材,其中关于动态分配端口,对象加密传输,消息处理,在线列表管理,
UI控制,系统配置,接口设计等技术值得学习。 阅读全文