Winform基础知识
貌似蛮久没写东西了(其实也没多久,只是给自己立下坚持写写blog的想法)。除了最近比较忙以外,最主要是因为当着手写东西的时候,总觉得写得不够全面,也就是对知识的把握程度不够。所以没有能够真正成型的。例如其实想写一个系列的线程文章的,关于线程,在过往中也用到了很多了,却从没有真正的总结过。线程同步、异步、线程池等都有用过,却在总结时畏首畏尾了。所以呢----当考虑要写一些东西的时候,要有所准备才行。但也不能因为写而写,要写出自己真正想要的东西,给自己的学习知识进行总结。废话不多说,最近在搞项目中---忙!去写Winform自定义控件---那么问题来了!Winform只是简单的拖拉控件?
Winform主要一些类的层次关系

1、Component:组件的基类,例如DataSet、DbConnection、控件等都继承了该类,实现了IComponent接口。组件的描述:组件是指可重复使用并且可以和其他对象进行交互的对象。关于它的那些特性规范是区别于普通类的关键。
2、Control:所有控件的基类,它实现了控件的基本功能,例如大小,是否可见,各类事件的定义等。控件的描述:控件是带有可视化表示形式的组件。所以呢,当我们定了新的控件(用户控件也是控件)后编译,我们可以在工具栏的用户控件栏中找到它们。我们经常用到的控件:TextBox,Button,DataGridView,Label等,个人觉得呢DataGridView等绑定数据控件是很值得深入探讨的。
3、CommonDialog:通用对话框,是抽象类。实现弹出式对话框与用户界面交互。主要有FileDialog(SaveFileDialog、OpenFileDialog)、ColorDialog、FontDialog等。描述:指定用于在屏幕上显示对话框的基类。MessageBox为单独的实现(具体内部如何,有待学习,但是如果要自定义MessageBox,思路就是定义窗体实现),它不属于通用对话框。
4、ScrollControl: 支持自动滚动行为控件, 添加自动滚动能力给所有需要滚动条的控件。描述:为支持自动滚动行为的控件定义一个基类。
5、ContainerControl :继承ScrollableControl ,描述:为可用作其他控件的容器的控件提供焦点管理功能。注意:就是它是提供焦点管理功能的,例如Panel、GroupBox等容器控件不是继承至它,而基本上就是UserControl和Form才是真的焦点管理者。
6、UserControl:用户自定义控件。在其上添加对应的控件,实现用户自定义的控件(各控件的组合)。描述:提供一个可用来创建其他控件的空控件。这个是我们经常会用到的,(还有就是继承重写控件)。
7、Form:窗体,Winform界面。描述:表示组成应用程序的用户界面的窗口或对话框。
8、Application:封装了Winform程序运行时的各种操作。提供 static 方法和属性以管理应用程序,例如启动和停止应用程序、处理 Windows 消息的方法和获取应用程序信息的属性。当中就涉及Winform运行机制的核心:消息处理机制,消息队列,消息循环。(如果要将Winform的消息机制,那可有得说)
最后,个人觉得Winform的控制方面还是很强大,并不说某些人说的知识拖拉控件那么简单的。有时候需要动态添加控件就要求对Position、Size要有相应的了解;控件的异步操作是应该深入的,特别是Winform的消息机制。而关于自定义用户控件,重写控件也是非常繁琐的,很多时候要求对句柄,消息要有一定的了解才行。
以上又是在吹水了。

浙公网安备 33010602011771号