• 扩展 DataGridView 的功能(一)


    grid 控件的重要性无需多说了,但要找一个好用的却是难上加难

    虽然市面上有很多成熟公司的成熟产品, 但那些东西毕竟太贵了,所以还是自己写比较实在(什么, 破解版?还是算了吧)

    自vs2005 以后,vs 系统自带了一个 DataGridView 控件, 这个控件的功能是很强大的,扩展性也不错, 所以我们就以它为基础吧

    开始统计需要扩展的功能先:

    1.显示行号

    2.加入可以输入文字的 DataGridViewComboBoxCell

    2.可分组折叠

    3.合并单元格

    4.Undo/Redo的支持

    5.其他。。。。。

    定义类

        /// <summary>
        
    /// 扩展的 DataGridView
        
    /// </summary>
        public class DataGridViewEx : DataGridView
        {
        }

    先来一个最简单的:显示行号

    这里我们用到了一个事件 RowPostPaint, 查看MSDN后可知该事件是在“绘制 DataGridViewRow 后发生” 

    DataGridView 在绘制 DataGridViewRow 时没有处理行号, 那就由 DataGridViewEx 来处理吧

    知道了原理,添加行号就很简单了, DrawString 就OK。

    给出主要的代码实现 :

            void DataGridViewEx_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
            {
                
    if (showRowHeaderNumbers)
                {
                    
    string title = (e.RowIndex + 1).ToString();
                    Brush bru 
    = Brushes.Black;
                    e.Graphics.DrawString(title, DefaultCellStyle.Font,
                        bru, e.RowBounds.Location.X 
    + RowHeadersWidth / 2 - 4, e.RowBounds.Location.Y + 4);
                }
            }

    完成后的效果:

    代码下载


  • 相关阅读:
    **没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
    牛逼博主
    tiny4412 busybox制作根文件系统rootfs nfs 挂载 ubuntu 14.04
    解决 mounting /dev/block/mmcblk0p1 on /sdcard failed
    如何在虚拟机上配置hadoop集群
    数据结构线性表
    a伪类,关于图片
    脱离标准文档流(2)---定位
    脱离标准文档流(1)---浮动
    初窥css---盒子以及盒子扩展
  • 原文地址:https://www.cnblogs.com/michaelhuwei/p/1299455.html
Copyright © 2020-2023  润新知