2017-03-10 85 views
0

DataGridViewセルをHatchPattern i C#で塗りつぶす方法はありますか?DataGridViewセルをハッチングパターンで塗りつぶす

私はdataGridView1.Rows [n] .Cells [m] .Styleを使ってみましたが、この方法ではセルのバックカラーのみを変更できます。

+0

_HatchPattern_とはどういう意味ですか? – Pikoh

+0

2つの色とHatchStyleで作成されたHatchBrushオブジェクトを使用してセルを塗りつぶします。これは、通常、図形を埋めるために使用されます – Szczepan

+0

なぜあなたはそれを行うのか分かりませんが、[この質問](http://stackoverflow.com/q/6041044/579895)を参照してください – Pikoh

答えて

1

あなたはオーナー描画にセル、すなわちコードCellPaintingイベント..私はコンテンツの読みやすくするため、半透明のハッチ色を作っ

using System.Drawing.Drawing2D; 
.. 
private void dataGridView1_CellPainting(object sender, 
             DataGridViewCellPaintingEventArgs e) 
{ 
    Rectangle cr = e.CellBounds; 
    e.PaintBackground(cr, true); 

    Color c1 = Color.FromArgb(64, Color.GreenYellow); 
    Color c2 = Color.FromArgb(64, e.State == DataGridViewElementStates.Selected ? 
       Color.HotPink : Color.RosyBrown) ; 

    if (e.RowIndex == 2 && (e.ColumnIndex >= 3)) 
     using (HatchBrush brush = new HatchBrush(HatchStyle.LargeConfetti, c1, c2)) 
     { 
      e.Graphics.FillRectangle(brush, cr); 
     } 
    e.PaintContent(cr); 
} 

enter image description here

注意が必要。私はまた、選択されているセルのうちの1つだけをチェックします。

関連する問題