• DataGridView :Multiline (merged) datagridview header



     

    For just merging the headercell, look at my sample:

     

    工程
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                this.dataGridView1.Columns.Add("JanWin", "Win");
    
                this.dataGridView1.Columns.Add("JanLoss", "Loss");
    
                this.dataGridView1.Columns.Add("FebWin", "Win");
    
                this.dataGridView1.Columns.Add("FebLoss", "Loss");
    
                this.dataGridView1.Columns.Add("MarWin", "Win");
    
                this.dataGridView1.Columns.Add("MarLoss", "Loss");
    
    
    
                for (int j = 0; j < this.dataGridView1.ColumnCount; j++)
                {
    
                    this.dataGridView1.Columns[j].Width = 45;
    
                }
    
                this.dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
    
                this.dataGridView1.ColumnHeadersHeight = this.dataGridView1.ColumnHeadersHeight * 2;
    
                this.dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter;
    
                this.dataGridView1.CellPainting += new DataGridViewCellPaintingEventHandler(dataGridView1_CellPainting);
    
                this.dataGridView1.Paint += new PaintEventHandler(dataGridView1_Paint);
    
    
            }
    
            void dataGridView1_Paint(object sender, PaintEventArgs e)
            {
    
                string[] monthes = { "January", "February", "March" };
    
                for (int j = 0; j < 6; )
                {
    
                    Rectangle r1 = this.dataGridView1.GetCellDisplayRectangle(j, -1, true); //get the column header cell
    
                    r1.X += 1;
    
                    r1.Y += 1;
    
                    r1.Width = r1.Width * 2 - 2;
    
                    r1.Height = r1.Height / 2 - 2;
    
                    e.Graphics.FillRectangle(new SolidBrush(this.dataGridView1.ColumnHeadersDefaultCellStyle.BackColor), r1);
    
                    StringFormat format = new StringFormat();
    
                    format.Alignment = StringAlignment.Center;
    
                    format.LineAlignment = StringAlignment.Center;
    
                    e.Graphics.DrawString(monthes[j / 2],
    
                        this.dataGridView1.ColumnHeadersDefaultCellStyle.Font,
    
                        new SolidBrush(this.dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor),
    
                        r1,
    
                        format);
                    e.Graphics.DrawLine(new Pen(Color.DarkGray), new Point(r1.X, r1.Bottom), new Point(r1.X+r1.Width , r1.Bottom));
    
                    j += 2;
    
                }
    
            }
        }
    }
  • 相关阅读:
    SpringBoot整合NoSql--(四)Session共享
    SpringBoot整合NoSql--(三)Redis集群
    SpringBoot整合NoSql--(二)MongoDB
    SpringBoot整合NoSql--(一)Redis
    SpringBoot整合持久层技术--(三)Spring Data JPA
    ArcGIS Server 10.4切片图的制作与发布
    ArcGIS api for JavaScript 3.27 聚合(cluster)
    ArcGIS api for JavaScript 3.27 按需显示需要的图层
    ArcGIS api for JavaScript 3.27 在线浏览的一些小部件
    WebGIS小理论(持续更新)
  • 原文地址:https://www.cnblogs.com/because/p/2486630.html
Copyright © 2020-2023  润新知