处理自定义的绘制事件可以为单元、列和行提供自定义的观感;
继承一个内置的单元类型以为其提供更多的行为;
2 DataGridView的结构
2.1 结构元素(Architecture Elements)
主要的DataGridView相关类继承自DataGridViewElement类。
DataGridViewElement类有两个属性,一是DataGridView,该属性提供了对其所属的DataGridView的引用;二是State,该属性表示当前的状态,其为DataGridViewElementStates枚举,该枚举支持位运算,这意味着可以设置组合状态。
2.2 单元和组(Cells and Bands)
DataGridView由两种基本的对象组成:单元(cell)和组(band)。所有的单元都继承自DataGridViewCell基类。 两种类型的组(或称集合)DataGridViewColumn和DataGridViewRow都继承自DataGridViewBand 基类,表示一组结合在一起的单元。
DataGridView会与一些类进行互操作,但最常打交道的则是如下三个:DataGridViewCell, DataGridViewColumn,DataGridViewRow。
2.3 DataGridView的单元 (DataGridViewCell)
单元(cell)是操作DataGridView的基本单位。Display is centered on cells, and data entry is often performed through cells。可以通过DataGridViewRow 类的Cells 集合属性访问一行包含的单元,通过DataGridView的SelectedCells集合属性访问当前选中的单元,通过DataGridView的CurrentCell属性访问当前的单元。
DataGridViewCell 类图
Cell 相关类和属性
DataGridViewCell对象不会像Windows Forms控件那样控制自己的外观和绘制(painting)特征,相反的,DataGridView会负责其包含的单元的外观。通过DataGridView 控件的属性和事件,你可以深刻地影响单元的外观和行为。如果你对单元定制有特殊要求,超出了DataGridView提供的功能,可以继承DataGridViewCell或者它的某个子类来满足这些要求。
2.3.1 DataGridViewCell的工作机制
理解DataGridView结构的一个重要部分是理解DataGridViewCell的工作机制:
单元的(A Cell’s Value)
单元的是其根本所在。如果单元所在列不是绑定列,并且所在的DataGridView也不是Virtual Mode,那么它的就由它本身所持有并维护。对于那些由绑定产生的单元,它们压根儿就不“知道”该持有什么,当然也就不会去维护了;当DataGridView需要单元的的时候,它会到数据源中查询该单元应当显示的。在Virtual Mode下,除了会触发CellValueNeeded事件以获取相应单元的外,与数据绑定方式非常相。在单元级,所有这些由DataGridViewCell.GetValue() 方法来控制。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-50070-18.html
损我小米
我觉得iOS9其实挺好的