c# dataGridView列标题分隔符 怎么去除问题

.Net技术 码拜 4年前 (2016-02-27) 251次浏览
c# dataGridView列标题分隔符 怎么去除问题
本人想删除如图所示,蓝色处的分隔符。要怎么实现啊。
希望有人能够帮本人看看,谢谢!
解决方案

40

在 DataGridView.CellPainting 事件中,利用 Graphics 自定义绘制

private void dgv_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
    var dgv = sender as DataGridView;
    var g = e.Graphics;
    if (e.RowIndex < 0)
    {
        if (Enumerable.Range(0, 3).Contains(e.ColumnIndex))
        {
            Brush bg = new SolidBrush(dgv.ColumnHeadersDefaultCellStyle.BackColor); // 背景色
            Brush fg = new SolidBrush(dgv.ColumnHeadersDefaultCellStyle.ForeColor); // 前景色
            if ((e.PaintParts & DataGridViewPaintParts.Background) == DataGridViewPaintParts.Background)
                g.FillRectangle(bg, e.CellBounds); // 绘制 Header 的背景色
            if ((e.PaintParts & DataGridViewPaintParts.ContentBackground) == DataGridViewPaintParts.ContentBackground)
                g.FillRectangle(SystemBrushes.Window, e.CellBounds); // 绘制 Content 的背景色
            if ((e.PaintParts & DataGridViewPaintParts.ContentForeground) == DataGridViewPaintParts.ContentForeground)
            {
                var col = dgv.Columns[e.ColumnIndex];
                var text = col?.HeaderText ?? "";
                var sizeF = g.MeasureString(text, dgv.Font); // 测量绘制列标题文本尺寸
                var x = e.CellBounds.X + (e.CellBounds.Width - sizeF.Width) / 2f; // 获取 Left
                var y = e.CellBounds.Y + (e.CellBounds.Height - sizeF.Height) / 2f; // 获取 Top
                g.DrawString(text, dgv.Font, fg, x, y); // 绘制列标题
                // 绘制上下边框
                g.DrawLine(Pens.Red, e.CellBounds.X, e.CellBounds.Y, e.CellBounds.Right, e.CellBounds.Y);
                g.DrawLine(Pens.Red, e.CellBounds.X, e.CellBounds.Height, e.CellBounds.Right, e.CellBounds.Height);
                col.Resizable = DataGridViewTriState.False; // 不允许调整列宽
            }
            e.Handled = true;
        }
    }
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c# dataGridView列标题分隔符 怎么去除问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)