2012年2月8日

工具条控件ToolBar

摘要: 默认没有ToolBar的VS环境,要从【工具箱】右击--【选择项】--【选择工具箱项】对话框--【.NET Framework 组件】--【ToolBar】打勾,就出现ToolBar控件了。ToolBar的AutoSize设置为False,配置上一个ImageList,那么工具条的图标大小的变化,只需要设置ImageList中图标的大小了,效果如图:工具条按钮的添加在他的Buttons属性里,是一个集合,打开集合如下:基本就是这些了。 阅读全文

posted @ 2012-02-08 15:10 cknife 阅读(295) 评论(0) 推荐(0) 编辑

2012年2月7日

以委托为中介来转换,进而可以函数作函数的参数传递函数

摘要: 这个小例子来自网上,经过自己的测试可以运行,前线明白的解释了委托--delegate。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace JackDanielsConsoleApplication{ class Program { static void Main(string[] args) { MyClass p = new MyClass(); p.InstanceMetho... 阅读全文

posted @ 2012-02-07 10:25 cknife 阅读(200) 评论(0) 推荐(0) 编辑

2012年2月6日

“System.Timers.Timer”未标记为可序列化的解决办法

摘要: 有一个Device类被加注了[Serializable()]属性,类里面有一个Timer类型的成员变量。因为Timer类不能被序列化,所以在做Device类的序列化时,报错:解决办法是把不能序列化的Timer类型成员加注下面的熟悉: [NonSerializedAttribute] public Timer[] mResetAlarmTimer=new Timer[8];这样就不报错了。 阅读全文

posted @ 2012-02-06 16:01 cknife 阅读(1913) 评论(0) 推荐(0) 编辑

2012年1月6日

gdi+ 的 graphicspath

摘要: http://blog.csdn.net/wwei466/article/details/2705938gdi+的graphicspath很强大,就我的理解是它可以记录下来你绘图的过程,最后一起画出来。由于我是使用c#编程的,对指针很模糊。gdi+画图,c#的效率是一个问题。如果你要画的东西少,那么你可以一个一个画。但是如果多的话,效率很成问题!我在做一个工程的时候,一个form上要画1500多条直线。如果做个循环再画,那么根本就不刷新了,一直卡在那里。而graphicspath就不会了,你可以使用它的addline()或者addlines()方法。我使用的是addlines()方法,它的参数 阅读全文

posted @ 2012-01-06 14:14 cknife 阅读(5098) 评论(0) 推荐(0) 编辑

2011年12月28日

IDeserializationCallback 接口

摘要: 指示在完成整个对象图形的反序列化时通知类。 给实现者的说明: 实现当前接口,以作为对在完成对象图形反序列化时所调用的方法的部分支持。 如果一个对象需要在其子对象上执行代码,它可以延迟此操作,实现 IDeserializationCallback,然后仅在此接口上回调代码才执行该代码。using System;using System.IO;using System.Collections;using System.Runtime.Serialization.Formatters.Binary;using System.Runtime.Serialization;// This class i. 阅读全文

posted @ 2011-12-28 16:31 cknife 阅读(369) 评论(0) 推荐(0) 编辑

2011年12月20日

反序列化时,初始化标识[NonSerialized]字段。

摘要: 我们知道我们可以添加Serializable属性来序列化和反序列化对象。它通常用来储存、传输对象。例如[Serializable]class ShoppingCartItem{ public int productId; public decimal price; public int quantity; public decimal total; public ShoppingCartItem(int _productID, decimal _price, int _quantity) { productId = _productID; ... 阅读全文

posted @ 2011-12-20 10:03 cknife 阅读(468) 评论(0) 推荐(0) 编辑

2011年12月19日

创建定制的泛型类--泛型Queue多线程读写文档--的泛型方法

摘要: 1.using System;2.using System.Collections.Generic;3.using System.Text;4.using System.Threading;5.6.namespace Generic_T_Manager7.{8. public interface IDocument9. {10. string Title11. { get;}12.13. string Content14. { get;}15. }16.17. public class Document : IDocument18. {19. priva... 阅读全文

posted @ 2011-12-19 15:24 cknife 阅读(300) 评论(0) 推荐(0) 编辑

C# Assembly(2)

摘要: C#反射之Assembly.Load,Assembly.LoadFile 与 Assembly.LoadFrom方法介绍 一些关于C#反射的知识,估计也就最多达到使用API的程度,至于要深入了解,以现在的水平估计很难做到,所以下面此篇文章,以作为一个阶段的总结。对于反射的总结,我想从以下几个方面展开,首先是反射程序集,模块,类的成员以及成员的一些信息;接下来就是动态调用类的成员方法;第三个方面就动态产生程序集,模块和类以及类的成员。好了,现在就让我们从反射各种信息开始吧在C#中,我们要使用反射,首先要搞清楚以下命名空间中几个类的关系:System.Reflection命名空间(1) AppDo 阅读全文

posted @ 2011-12-19 15:08 cknife 阅读(664) 评论(0) 推荐(0) 编辑

C# Assembly

摘要: 什么是Assembly(程序集)? Assembly是一个包含来程序的名称,版本号,自我描述,文件关联关系和文件位置等信息的一个集合。在.net框架中通过Assembly类来支持,该类位于System.Reflection下,物理位置位于:mscorlib.dll。Assembly能干什么? 我们可以通过Assembly的信息来获取程序的类,实例等编程需要用到的信息。一个简单的演示实例: 1.建立一个Console工程名为:NamespaceRef 2.写入如下代码:2using System.Collections.Generic;3using System.Text;4using Syst 阅读全文

posted @ 2011-12-19 15:06 cknife 阅读(301) 评论(0) 推荐(0) 编辑

C# where子句

摘要: where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量。 1.接口约束。 例如,可以声明一个泛型类 MyGenericClass,这样,类型参数 T 就可以实现 IComparable<T> 接口:public class MyGenericClass<T> where T:IComparable { } 2.基类约束:指出某个类型必须将指定的类作为基类(或者就是该类本身),才能用作该泛型类型的类型参数。 这样的约束一经使用,就必须出现在该类型参数的所有其他约束之前。class MyClassy<T, U> where T : cl 阅读全文

posted @ 2011-12-19 14:50 cknife 阅读(233) 评论(0) 推荐(0) 编辑

导航