向DataGrid控件添加表样式和列样式,是使用该控件的过程中非常重要的一项技巧。掌握这一技巧可以非常自如地使用DataGrid控件,轻松控制任意列的宽度、位置、标题及格式特性等。而且掌握这一技巧并不很难。
1.DataGrid、表样式、列样式
DataGrid控件是由一组复杂的对象组成的。这些对象相互配合完成显示数据表格的任务。要向DataGrid添加表样式和列样式就必须使用以下4个类:
DataGridTableStyle 对象
GridTableStylesCollection 对象
DataGridColumnStyle 对象
GridColumnStylesCollection 对象
当然还包括DataGrid本身。其中GridTableStylesCollection 对象需要通过DataGrid的属性TableStyles 进行访问。而DataGridColumnStyle 对象则必须使用DataGridTableStyle 对象的GridColumnStyles 属性访问。要向DataGrid添加表样式,需要首先声明一个DataGridTableStyle对象。然后使用DataGrid.TableStyles.Add()方法把它添加到数据网格的GridTableStylesCollection里面。
DataGridTableStyle ts1 = new DataGridTableStyle();//声明DataGridTableStyle
ts1.MappingName = "Customers";//设置表样式对象的影射名称,应该是要显示的数据表的名称
//中间可以加入数据网格的列样式
DataGridBoolColumn myDataCol = new DataGridBoolColumn();//列
myDataCol.HeaderText = "My New Column";//列标题
myDataCol.MappingName = "Current";//映射列名称
myDataCol.Width = 100;//设置列的宽度
myDataCol.Format = "yy/mm/dd hh:mm:ss";
dataGrid1.TableStyles.Add(ts1);//把表样式添加到数据网格的GridTableStylesCollection里面
但是在调用DataGrid.TableStyles.Add()之前还必须完成对列样式的设置。列样式有两种,DataGridBoolColumn和DataGridTextBoxColumn。前者在方格里显示一个类似于负选框的小对勾,以表示Boolean值,而后者在方格里面显示一行文本。首先声明一个列样式,然后设置映射名和列标题,最后调用表样式的GridColumnStyle.Add()方法,把列添加进去。见上面的程序。
另外还可以设置列的宽度,就像这样:
myDataCol.Width = 100;//设置列的宽度
如果要设置列的格式,可以这样:
myDataCol.Format = "yy/mm/dd hh:mm:ss";
如果要显示日期最好要设置日期时间的显示格式。
下表列出所有用于日期格式设置的有效格式字符串及其说明。
格式字符串 | 说明 |
---|---|
d | 一位数或两位数的天数。 |
dd | 两位数的天数。一位数天数的前面加一个零。 |
ddd | 三个字符的星期几缩写。 |
dddd | 完整的星期几名称。 |
h | 12 小时格式的一位数或两位数小时数。 |
hh | 12 小时格式的两位数小时数。一位数数值前面加一个零。 |
H | 24 小时格式的一位数或两位数小时数。 |
HH | 24 小时格式的两位数小时数。一位数数值前面加一个零。 |
m | 一位数或两位数分钟值。 |
mm | 两位数分钟值。一位数数值前面加一个零。 |
M | 一位数或两位数月份值。 |
MM | 两位数月份值。一位数数值前面加一个零。 |
MMM | 三个字符的月份缩写。 |
MMMM | 完整的月份名。 |
s | 一位数或两位数秒数。 |
ss | 两位数秒数。一位数数值前面加一个零。 |
t | 一个字母的 AM/PM 缩写(“AM”显示为“A”)。 |
tt | 两个字母的 AM/PM 缩写(“AM”显示为“AM”)。 |
y | 一位数的年份(2001 显示为“1”)。 |
yy | 年份的最后两位数(2001 显示为“01”)。 |
yyyy | 完整的年份(2001 显示为“2001”)。 |