2

以下のような単一の破線で datagridview ヘッダー行を印刷したい場合、ボディが役立つ場合、私はこれで立ち往生しています:

Name              ID
---------------------

そして、このようにボーダーなしでアイテムを印刷します

Name              ID
---------------------
Abc               21

このコードを使用しました

dgvmain.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
dgvmain.CellBorderStyle = DataGridViewCellBorderStyle.None;

よろしく お願いしますdgvmainDataGridView

4

1 に答える 1

7

CellPaintingイベント ハンドラーにコードを追加して、カスタム ペイントを少し行う必要があります。セルの境界線を に設定するには、次Noneを使用しますCellBorderStyle

dataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.None;

// CellPainting event handler for your dataGridView1
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
    if (e.RowIndex == -1 && e.ColumnIndex > -1)
    {
       e.Handled = true;
       using (Brush b = new SolidBrush(dataGridView1.DefaultCellStyle.BackColor))
       {
         e.Graphics.FillRectangle(b, e.CellBounds);
       }
       using (Pen p = new Pen(Brushes.Black))
       {
         p.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
         e.Graphics.DrawLine(p, new Point(0, e.CellBounds.Bottom-1), new Point(e.CellBounds.Right, e.CellBounds.Bottom-1));
       }
       e.PaintContent(e.ClipBounds);
    }
}

ここに画像の説明を入力

于 2013-08-18T08:58:48.227 に答える