记得当初学习VB6.0的时候,入门的书,一上来就是控件的介绍,控件的属性、事件的使用,拖拽一个文本框、一个按钮,然后再双击按钮,在按钮的事件里面给文本框的Text 设置一个“hello word”,第一步就OK了。这就是传说中的 Hello Word。
但是在学习Delphi的时候,书里面写的是控件的继承关系,按钮控件是继承的那个类,文本框又是继承的那个类,这些类又是继承的哪些类。会弄出来一个“树”出来。不知道.net方面的书有没有这样的树,管他有没有呢,先自己弄一个玩玩。
最近在写自定义控件,感觉需要先稍微弄明白一下框架自带的控件都是怎么继承的,事件、属性又是在那里定义的,比如DataBind()是在那里定义的,DataSource又是在那里定义的。对了还想问一下,怎么快速的知道一个事件是不是在接口里面定义的?
我用Reflector.exe打开 .net Framework2.0 的dll,找到我想看的控件,把他们的定义copy写来,写在自己的程序里面,然后利用vs2008的“查看类关系图”的功能,得到了下面的这张图。
奇怪,DataBind() 是在 Control 里面定义的,而 DataSource 却在三个地方定义,这个就很郁闷了,他们好像也不是在同一个接口里面定义的。
DataGrid和GridView居然没有什么关系,看来 GridView 好像是重写了一遍。