2

私はデータでファイルされた GridView テーブルです..そして、何らかの理由で各セルの背景色を塗りつぶしたいと思います..しかし、ここに問題があります..セルサイズの 1/10 だけを色で塗りつぶす必要があります。これを行うことは可能ですか?もしそうなら - どうやって?c# で winforms を使用しています。

どうもありがとう。

4

3 に答える 3

2

多分この解決策を試してください(テスト済み)

private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
    {   
        if (e.ColumnIndex >= 0 && e.ColumnIndex < 1 && e.RowIndex >= 0)
        {
            //Watch out for the Index of Rows (here 0 for testing)
            string text = this.dataGridView1.Rows[0].Cells[e.ColumnIndex].Value.ToString();

            // Clear cell 
            e.Graphics.FillRectangle(new SolidBrush(Color.Green), new Rectangle(e.CellBounds.Left, e.CellBounds.Top, e.CellBounds.Width / 10 , e.CellBounds.Height));
            e.Graphics.DrawString(text, this.Font, new SolidBrush(Color.Black), new Point(e.CellBounds.Left, e.CellBounds.Top + 2));
            e.Graphics.DrawRectangle(new Pen(Color.Silver), new Rectangle(e.CellBounds.Left, e.CellBounds.Top, e.CellBounds.Width - 1, e.CellBounds.Height - 1));
            e.Handled = true;
        }

    }
于 2013-10-01T13:40:58.617 に答える
0

これをチェックしてください。

そのコンテンツではなくDataGridViewのセルの背景のみをペイントする方法は?

ステップで:

e.Graphics.FillRectangle(backColorBrush, e.CellBounds);

セルの境界を使用する代わりに、長方形の独自の境界を定義します。

于 2013-10-01T13:32:17.500 に答える