由于工作需要跟winform下的datagrid,打了下交道,winform下的datagrid跟web中的结构差别很大,搞得很是焦头烂额,存档备用![b]ps:vs2003环境[/b]
想要使用自定义的列样式,首先必须了解DataGrid的结构。在我们将一个DataGrid控件拖到窗体上的时候,我们可以马上在属性中设置它的样式,改变它数据行的交替色等。这不同于ASP.NET下的样式设置。在ASP.NET中,最终的改变都体现为网页的HTML语言。而在WinForm下,这种改变是通过控制DataGrid的DataGridTableStyle属性(对象)来体现的,而DataGridTableStyle又是由若干个DataGridColumnStyle组成的,微软默认提供了两种列样式:DataGridTextBoxColumn和DataGridBoolColumn.
想要使用自定义的列样式,首先必须了解DataGrid的结构。在我们将一个DataGrid控件拖到窗体上的时候,我们可以马上在属性中设置它的样式,改变它数据行的交替色等。这不同于ASP.NET下的样式设置。在ASP.NET中,最终的改变都体现为网页的HTML语言。而在WinForm下,这种改变是通过控制DataGrid的DataGridTableStyle属性(对象)来体现的,而DataGridTableStyle又是由若干个DataGridColumnStyle组成的,微软默认提供了两种列样式:DataGridTextBoxColumn和DataGridBoolColumn.
1 /// <summary>
2 /// 设置dataGrid1的模板
3 /// </summary>
4 /// <param name="dt"></param>
5 private void SetGridStyle(DataTable dt)
6 {
7
8 if(!dataGrid1.TableStyles.Contains(dt.TableName))
9 {
10 DataGridTableStyle dts=new DataGridTableStyle();
11 dts.MappingName=dt.TableName; //注意:必须加上这一句,否则自定义列格式无法使用
12 dataGrid1.TableStyles.Add(dts);
13 dataGrid1.TableStyles[0].GridColumnStyles.Clear();
14 dts.AlternatingBackColor=System.Drawing.Color.FromName("Lavender");
15 dts.HeaderBackColor=System.Drawing.Color.FromName("MidnightBlue");
16 dts.HeaderForeColor=System.Drawing.Color.FromName("White");
17 dts.GridLineColor=System.Drawing.Color.GhostWhite;
18
19 //========================设置表头栏位===========================
20 DataGridTextBoxColumn colFileName1 = new DataGridTextBoxColumn();
21 colFileName1.Width=160;
22 colFileName1.MappingName = "FileName";
23 colFileName1.HeaderText = "文件名";
24 colFileName1.Alignment=HorizontalAlignment.Center;
25 dts.GridColumnStyles.Add(colFileName1);
26
27 DataGridTextBoxColumn colRecordCount = new DataGridTextBoxColumn();
28 colRecordCount.Width=75;
29 colRecordCount.HeaderText = "记录数";
30 colRecordCount.Alignment=HorizontalAlignment.Center;
31 colRecordCount.MappingName = "RecordCount";
32 dts.GridColumnStyles.Add(colRecordCount);
33
34 DataGridTextBoxColumn colFileRecordCount = new DataGridTextBoxColumn();
35 colFileRecordCount.Width=100;
36 colFileRecordCount.HeaderText = "文件记录数";
37 colFileRecordCount.MappingName = "FileRecordCount";
38 colFileRecordCount.Alignment=HorizontalAlignment.Center;
39 dts.GridColumnStyles.Add(colFileRecordCount);
40
41 DataGridTextBoxColumn colState = new DataGridTextBoxColumn();
42 colState.Width=65;
43 colState.HeaderText = "完成状态";
44 colState.MappingName = "state";
45 colState.Alignment=HorizontalAlignment.Center;
46 dts.GridColumnStyles.Add(colState);
47
48 DataGridTextBoxColumn colAddDate = new DataGridTextBoxColumn();
49 colAddDate.Width=143;
50 colAddDate.ReadOnly=true;
51 colAddDate.HeaderText = "添加时间";
52 colAddDate.Alignment=HorizontalAlignment.Center;
53 colAddDate.Format="yyyy-MM-dd hh:mm:ss";
54 colAddDate.MappingName = "AddDate";
55 dts.GridColumnStyles.Add(colAddDate);
56
57 dts.RowHeadersVisible=false;//隐藏自动生成的左边列
58 dts.AlternatingBackColor= System.Drawing.Color.FromName("Lavender");
59 dataGrid1.TableStyles.Add(dts);
60
61
62 }
2 /// 设置dataGrid1的模板
3 /// </summary>
4 /// <param name="dt"></param>
5 private void SetGridStyle(DataTable dt)
6 {
7
8 if(!dataGrid1.TableStyles.Contains(dt.TableName))
9 {
10 DataGridTableStyle dts=new DataGridTableStyle();
11 dts.MappingName=dt.TableName; //注意:必须加上这一句,否则自定义列格式无法使用
12 dataGrid1.TableStyles.Add(dts);
13 dataGrid1.TableStyles[0].GridColumnStyles.Clear();
14 dts.AlternatingBackColor=System.Drawing.Color.FromName("Lavender");
15 dts.HeaderBackColor=System.Drawing.Color.FromName("MidnightBlue");
16 dts.HeaderForeColor=System.Drawing.Color.FromName("White");
17 dts.GridLineColor=System.Drawing.Color.GhostWhite;
18
19 //========================设置表头栏位===========================
20 DataGridTextBoxColumn colFileName1 = new DataGridTextBoxColumn();
21 colFileName1.Width=160;
22 colFileName1.MappingName = "FileName";
23 colFileName1.HeaderText = "文件名";
24 colFileName1.Alignment=HorizontalAlignment.Center;
25 dts.GridColumnStyles.Add(colFileName1);
26
27 DataGridTextBoxColumn colRecordCount = new DataGridTextBoxColumn();
28 colRecordCount.Width=75;
29 colRecordCount.HeaderText = "记录数";
30 colRecordCount.Alignment=HorizontalAlignment.Center;
31 colRecordCount.MappingName = "RecordCount";
32 dts.GridColumnStyles.Add(colRecordCount);
33
34 DataGridTextBoxColumn colFileRecordCount = new DataGridTextBoxColumn();
35 colFileRecordCount.Width=100;
36 colFileRecordCount.HeaderText = "文件记录数";
37 colFileRecordCount.MappingName = "FileRecordCount";
38 colFileRecordCount.Alignment=HorizontalAlignment.Center;
39 dts.GridColumnStyles.Add(colFileRecordCount);
40
41 DataGridTextBoxColumn colState = new DataGridTextBoxColumn();
42 colState.Width=65;
43 colState.HeaderText = "完成状态";
44 colState.MappingName = "state";
45 colState.Alignment=HorizontalAlignment.Center;
46 dts.GridColumnStyles.Add(colState);
47
48 DataGridTextBoxColumn colAddDate = new DataGridTextBoxColumn();
49 colAddDate.Width=143;
50 colAddDate.ReadOnly=true;
51 colAddDate.HeaderText = "添加时间";
52 colAddDate.Alignment=HorizontalAlignment.Center;
53 colAddDate.Format="yyyy-MM-dd hh:mm:ss";
54 colAddDate.MappingName = "AddDate";
55 dts.GridColumnStyles.Add(colAddDate);
56
57 dts.RowHeadersVisible=false;//隐藏自动生成的左边列
58 dts.AlternatingBackColor= System.Drawing.Color.FromName("Lavender");
59 dataGrid1.TableStyles.Add(dts);
60
61
62 }
※不望朝进大步§※§但求日积点滴※