DataGridView.CellPainting Olay

Tanım

Bir hücrenin çizilmesi gerektiğinde gerçekleşir.

C#
public event System.Windows.Forms.DataGridViewCellPaintingEventHandler CellPainting;

Olay Türü

DataGridViewCellPaintingEventHandler

Örnekler

Aşağıdaki kod örneği, belirli bir sütundaki tüm hücrelerin görünümünü özelleştirmek için bu olayın nasıl kullanılacağını göstermektedir.

Bu kod, How to: Customize the Appearance of Cells in the Windows Forms DataGridView Control (Windows Forms DataGridView Denetimindeki Hücrelerin Görünümünü Özelleştirme) bölümünde bulunan daha büyük bir örneğin parçasıdır.

C#
private void dataGridView1_CellPainting(object sender,
System.Windows.Forms.DataGridViewCellPaintingEventArgs e)
{
    if (this.dataGridView1.Columns["ContactName"].Index ==
        e.ColumnIndex && e.RowIndex >= 0)
    {
        Rectangle newRect = new Rectangle(e.CellBounds.X + 1,
            e.CellBounds.Y + 1, e.CellBounds.Width - 4,
            e.CellBounds.Height - 4);

        using (
            Brush gridBrush = new SolidBrush(this.dataGridView1.GridColor),
            backColorBrush = new SolidBrush(e.CellStyle.BackColor))
        {
            using (Pen gridLinePen = new Pen(gridBrush))
            {
                // Erase the cell.
                e.Graphics.FillRectangle(backColorBrush, e.CellBounds);

                // Draw the grid lines (only the right and bottom lines;
                // DataGridView takes care of the others).
                e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left,
                    e.CellBounds.Bottom - 1, e.CellBounds.Right - 1,
                    e.CellBounds.Bottom - 1);
                e.Graphics.DrawLine(gridLinePen, e.CellBounds.Right - 1,
                    e.CellBounds.Top, e.CellBounds.Right - 1,
                    e.CellBounds.Bottom);

                // Draw the inset highlight box.
                e.Graphics.DrawRectangle(Pens.Blue, newRect);

                // Draw the text content of the cell, ignoring alignment.
                if (e.Value != null)
                {
                    e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,
                        Brushes.Crimson, e.CellBounds.X + 2,
                        e.CellBounds.Y + 2, StringFormat.GenericDefault);
                }
                e.Handled = true;
            }
        }
    }
}

Açıklamalar

Denetimdeki hücrelerin görünümünü özelleştirmek için bu olayı işleyebilirsiniz. Tüm hücreleri kendiniz boyayabilirsiniz veya hücrelerin belirli bölümlerini boyayabilirsiniz ve veya DataGridViewCellPaintingEventArgs.PaintContent yöntemlerini kullanarak DataGridViewCellPaintingEventArgs.PaintBackground diğer bölümleri boyayabilirsiniz. Geçerli temayı kullanarak standart denetimleri boyamak için sınıfını da kullanabilirsiniz VisualStyleRenderer . Daha fazla bilgi için bkz . Görsel Stiller ile İşleme Denetimleri. Visual Studio 2005 kullanıyorsanız, denetimle birlikte kullanabileceğiniz büyük bir standart görüntü kitaplığına DataGridView da erişebilirsiniz.

Bu olayı işlerken, hücreye doğrudan erişmek yerine olay işleyicisinin parametreleri aracılığıyla erişmeniz gerekir.

Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.

Şunlara uygulanır

Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7

Ayrıca bkz.