您的位置:首页 > 其它

.net WinForm DataGridView 多表头处理方案一则

2008-09-12 09:43 363 查看
.net WinForm DataGridView 多表头处理方案一则

思路:重画,重载
实现:
我是使用重载表格控件来处理的代码如下:

表格初始化时:
_mergedManager = new DataGridViewHeadsMergedManager(this);

使用代码:
技巧,在属性弹出的数据窗口回车确认后,会自动添加一行表头,任意多行,先横向,后纵向自动合并;-)

1



多表头#region 多表头
2


3

[
4

Category("GridX"),
5

Description("设置辅助标题"),
6

]
7

public int ColumnTitleHeight
8





{
9

get
10





{
11

return _mergedManager.ColumnTitleHeight;
12


13

}
14

set
15





{
16


17

_mergedManager.ColumnTitleHeight = value;
18


19

}
20


21

}
22

[
23

Category("GridX"),
24

Description("设置辅助标题"),
25

]
26

public string[] TitleHeads
27





{
28


29

get
30





{
31


32

if (this._mergedManager == null)
33

this._mergedManager = new DataGridViewHeadsMergedManager(this);
34


35

return _mergedManager.TitleHeads;
36


37


38


39

}
40

set
41





{
42


43


44

_mergedManager.TitleHeads = value;
45


46

}
47


48

}
49


50

public void ClearHeads()
51





{
52

_mergedManager.ClearHeads();
53

//this.ScrollBars = ScrollBars.Both;
54

}
55


56

private void InternalDisposeHeads()
57





{
58

_mergedManager.Dispose();
59

}
60


61

public void AppendNewHead(params string[] Caption)
62





{
63

//this.ScrollBars = ScrollBars.Vertical;
64

_mergedManager.AppendNewHead(Caption);
65


66

}
67


68

public void HeadRemoveAt(int index)
69





{
70

_mergedManager.HeadRemoveAt(index);
71


72

}
73


74

public int HeadCount
75





{
76

get
77





{
78

return _mergedManager.HeadCount;
79

}
80


81

}
82

#endregion
83


84


85


86


表头代码:
略...

Demo:
先右键定义6个DataGridViewColumn列,我第二列设不可见
再在TitleHeads窗口中输
Column1,Column1,Column1,Column1,Column2,Column2
Column1,Column1,Column3,Column5,Column5,Column5
Column1,Column2,Column3,Column4,Column7,Column8
Column1,Column2,Column3,Column4,Column7,Column6
代码:
this.grid.TitleHeads = new string[] {
"Column1,Column1,Column1,Column1,Column2,Column2",
"Column1,Column1,Column3,Column5,Column5,Column5",
"Column1,Column2,Column3,Column4,Column7,Column8",
"Column1,Column2,Column3,Column4,Column7,Column6"};
贴图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: