C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: DataGridViewの特定列の罫線を変更したい


(過去ログ 161 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■93134 / inTopicNo.1)  DataGridViewの特定列の罫線を変更したい
  
□投稿者/ ant (1回)-(2019/11/23(Sat) 09:04:32)

分類:[C#] 

DataGridViewの特定列の罫線を変更したいです。

CellPaintingで記述できるとあったので以下のコードを書きました。
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
    if (e.ColumnIndex == 5)
    {
         e.Paint(e.ClipBounds, DataGridViewPaintParts.All);
         using (Pen pen = new Pen(Color.Black))
         {
              e.Graphics.DrawLine(pen, e.CellBounds.Right, e.CellBounds.Top, e.CellBounds.Right, e.CellBounds.Height);
         }
         e.Handled = true;
    }
}

実行すると正常に罫線が引かれるのですが、スクロールすると画像のように欠けてしまいます。
罫線が欠けないようにはできないでしょうか。
http://get.secret.jp/pt/file/1574467112.png

引用返信 編集キー/
■93135 / inTopicNo.2)  Re[1]: DataGridViewの特定列の罫線を変更したい
□投稿者/ ant (3回)-(2019/11/23(Sat) 09:33:32)
連投失礼します。
次のセルの描写と重なり合うと罫線が上書きされてしまうようです。
ですので以下のように修正しましたが、それでも欠けてしまいました。
e.Graphics.DrawLine(pen, e.CellBounds.Right-1, e.CellBounds.Top, e.CellBounds.Right-1, e.CellBounds.Height);

ですがブラシで矩形塗りつぶしを行った場合、欠けずに描写できました。
using (Brush pen = new SolidBrush(Color.Black))
{
     e.Graphics.FillRectangle(pen, e.CellBounds.Right-2, e.CellBounds.Top, 2, e.CellBounds.Height);
}

矩形を描くことで今回は解決しましたが、DrawLineでスクロールすると欠ける理由が気になります・・・

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -