http://blog.csdn.net/wartim/archive/2010/01/04/5128060.aspx特点:只有一个datagridview,在datagridview上直接继承
namespace WindowsApplication252   
{   
    /// <summary>   
    /// Made by wartim v1.0   
    /// </summary>   
    public partial class Form1 : Form   
    {   
        public Form1()   
        {   
            InitializeComponent();   
  
            // DEMO 显示效果代码,因为没耐心做完全部和完全测试,所以很多功能都没做,比如Excel式计算公式   
               
            ExcelGrid EG = new ExcelGrid();   
            EG.Parent = this;   
            EG.Dock = DockStyle.Fill;   
  
            EG[1, 1] = 10; // 序号方式赋值,当前的第一列第一行   
  
            //自定义标头内部存储引用行/列,可以根据当前行/列数量正确显示位置   
            EG[0, 1] = "X"; // 当前的第一行标头   
            EG[1, 0] = "Y"; // 当前的第一列标头   
  
            // 兼容正常操作下的正确统一处理   
            EG.Columns.Add("自定义1", "自定义1");   
            EG.Columns.Insert(0, new DataGridViewTextBoxColumn());   
  
            EG["F", 5] = 20; // 字母列头方式赋值,当前的第六列第五行   
  
            // 兼容正常操作下的正确统一处理   
            EG.Columns.RemoveAt(4);   
  
            EG["自定义1", 2] = 100; // 自定义列头方式赋值,当前的第三列第二行   
            EG[1, "X"] = 200; // 自定义行头方式赋值,当前的第一列第一行   
            EG["自定义1", "X"] = 300; // 自定义列头、行头方式赋值,当前的第三列第一行   
            EG["B",100] = 600;   
  
            //EG["AB", 10] = 10000; // 取消注释后将在第二十八列第十行赋值10000   
  
            EG.ShowFoot = true; // 显示页脚合计栏   
  
            EG.Sort(EG.Columns[0], ListSortDirection.Descending); // 当前数据行按第一列降序排序     
  
            EG[6, 1] = 123; // 支持编程方式下自动增列   
            // 同时支持鼠标点击“新增列”时自动增列   
            // 或是键盘移动到“新增列”后输入内容时自动增列   
  
            // 支持垂直滚动条在不影响布局情况下滚动   
  
            // 设置页脚固定文字   
            EG[0] = "合计";   
            EG[1] = "VVV";   
  
            EG["自定义1"] = "##SUM"; // 自动合计列,支持随列值修改动态更新   
        }   
  
        class ExcelGrid : DataGridView   
        {   
................
详见博客

解决方案 »

  1.   

    因为多余行是要自动隐藏的,所以垂直滚动条是另加上去的,这些功能虽然看起来简单,但要考虑到的细节是一大堆,细节就不方便都说清楚了,比如我一开始是直接判断标头是自动填充的A、B、C.... 1、2、3...还是自定义的才判断是否在行列数量变化时参与调整行列,但可能自定义内容本身就是A、B、C....的,结果无法判断,最后还是用引用列的方式,还有自增列,让其在各种情况下正常工作也是颇费脑筋
      

  2.   

    这里发言,表示您接受了CSDN社区的用户行为准则。 
    请对您的言行负责,并遵守中华人民共和国有关法律法规,尊重网上道德。 
    转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。