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

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

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

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

 1       #region 多表头
 2
 3        [
 4Category("GridX"),
 5Description("设置辅助标题"),
 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        [
23Category("GridX"),
24Description("设置辅助标题"),
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"};
贴图:
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值