net WinForm DataGridView 多表头处理方案一则
2008-01-22 23:14
176 查看
.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"};
贴图:
思路:重画,重载
实现:
我是使用重载表格控件来处理的代码如下:
表格初始化时:
_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"};
贴图:
相关文章推荐
- .net WinForm DataGridView 多表头处理方案一则
- .net WinForm DataGridView 多表头处理方案一则
- .NET WinForm程序中给DataGridView表头添加下拉列表实现数据过滤
- .NET WinForm程序中给DataGridView表头添加下拉列表实现数据过滤
- .NET Winform Datagridview 实现多行表头
- .net WinForm用户控件开发--(2)带按钮DataGridView
- ASP.NET MVC异常处理方案
- Winform传统DataGridView和DevExpress控件的GridControl两者表头全选功能的实现
- [見好就收]NET 2.0 - WinForm Control - DataGridView 编程36计
- NET 2.0 - WinForm Control - DataGridView 编程36计(一)转
- Winform中DataGridView横向拖动滚动条时闪烁问题很严重的处理办法
- 如何在Visual Studio C#.Net WinForm 中 TreeView中右键选择节点进行处理?
- .net WinForm下从datagridview中取值,通过Zedgraph作折线图
- .NET 4.0 - Winform Control - DataGridView 数据绑定(ADO.NET Data Service)
- asp.net随机处理方案
- ASP.NET处理Session过期的几种方案
- [原]ASP.NET MVC异常处理方案
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-演示ORM对象与DataGridView的绑定技术-商品字典的另一个实现
- NET 2.0 - WinForm Control - DataGridView 编程36计(一)
- WinForm中的DataGridView控件显示数据字典方案2