zoukankan      html  css  js  c++  java
  • 如何让 dataGridView 的空白区域自动用网格填充

    DataGridView 空数据像Excel空网格一样(DataGridView Excel like empty grid)

    class GridLineDataGridView : DataGridView
        {
            protected override void OnPaint(PaintEventArgs e)
            {
                base.OnPaint(e);
     
                int rowHeight = this.RowTemplate.Height;
     
                int h = this.ColumnHeadersHeight + rowHeight * this.RowCount ;
                int imgWidth = this.Width - 2;
                Rectangle rFrame = new Rectangle(0, 0, imgWidth, rowHeight);
                Rectangle rFill = new Rectangle(1, 1, imgWidth - 2, rowHeight);
                Rectangle rowHeader = new Rectangle(2, 2, this.RowHeadersWidth - 3, rowHeight);
     
                Pen pen = new Pen(this.GridColor, 1);
     
                Bitmap rowImg = new Bitmap(imgWidth, rowHeight);
                Graphics g = Graphics.FromImage(rowImg);
                g.DrawRectangle(pen, rFrame);
                g.FillRectangle(new SolidBrush(this.DefaultCellStyle.BackColor), rFill);
                g.FillRectangle(new SolidBrush(this.RowHeadersDefaultCellStyle.BackColor), rowHeader);
     
                Bitmap rowImgAAlternative = rowImg.Clone() as Bitmap;
                Graphics g2 = Graphics.FromImage(rowImgAAlternative);
                rFill.X += this.RowHeadersWidth - 1;
                g2.FillRectangle(new SolidBrush(this.AlternatingRowsDefaultCellStyle.BackColor), rFill);
     
                int w = this.RowHeadersWidth - 1;
                for (int j = 0; j < this.ColumnCount; j++)
                {
                    g.DrawLine(pen, new Point(w, 0), new Point(w, rowHeight));
                    g2.DrawLine(pen, new Point(w, 0), new Point(w, rowHeight));
                    w += this.Columns[j].Width;
                }
     
                int loop = (this.Height - h) / rowHeight;
                for (int j = 0; j < loop + 1; j++)
                {
                    int index = this.RowCount + j;
                    if (index % 2 == 0)
                    {
                        e.Graphics.DrawImage(rowImg, 1, h + j * rowHeight);
                    }
                    else
                    {
                        e.Graphics.DrawImage(rowImgAAlternative, 1, h + j * rowHeight);
                    }
                }
            }
        }

    转 : https://www.it1352.com/1336145.html

  • 相关阅读:
    中国剩余定理及拓展
    20191128-1 总结
    获取动态图
    弹球游戏设计
    作业要求 20191121-1 每周例行报告
    作业要求 20191114-1 每周例行报告
    对现组内成员的感谢
    作业要求 20191107-1 每周例行报告
    20191031-1 每周例行报告
    作业要求 20191024-1每周例行报告
  • 原文地址:https://www.cnblogs.com/fps2tao/p/14781449.html
Copyright © 2011-2022 走看看