次の方法で共有


DataGridViewCellPaintingEventArgs クラス

定義

CellPainting イベントのデータを提供します。

public ref class DataGridViewCellPaintingEventArgs : System::ComponentModel::HandledEventArgs
public class DataGridViewCellPaintingEventArgs : System.ComponentModel.HandledEventArgs
type DataGridViewCellPaintingEventArgs = class
    inherit HandledEventArgs
Public Class DataGridViewCellPaintingEventArgs
Inherits HandledEventArgs
継承
DataGridViewCellPaintingEventArgs

次のコード例は、この型の使用方法を示しています。 詳細については、「方法 : Windows フォームの DataGridView コントロールのセルの外観をカスタマイズする」を参照してください。

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;
            }
        }
    }
}
Private Sub dataGridView1_CellPainting(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) _
    Handles dataGridView1.CellPainting

    If Me.dataGridView1.Columns("ContactName").Index = _
        e.ColumnIndex AndAlso e.RowIndex >= 0 Then

        Dim newRect As New Rectangle(e.CellBounds.X + 1, e.CellBounds.Y + 1, _
            e.CellBounds.Width - 4, e.CellBounds.Height - 4)
        Dim backColorBrush As New SolidBrush(e.CellStyle.BackColor)
        Dim gridBrush As New SolidBrush(Me.dataGridView1.GridColor)
        Dim gridLinePen As New Pen(gridBrush)

        Try

            ' 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 IsNot Nothing) Then
                e.Graphics.DrawString(CStr(e.Value), e.CellStyle.Font, _
                Brushes.Crimson, e.CellBounds.X + 2, e.CellBounds.Y + 2, _
                StringFormat.GenericDefault)
            End If
            e.Handled = True

        Finally
            gridLinePen.Dispose()
            gridBrush.Dispose()
            backColorBrush.Dispose()
        End Try

    End If

End Sub

注釈

イベントは CellPainting 、 に表示されるそれぞれに DataGridViewCell 対して DataGridView発生します。 パフォーマンスを向上させるには、 のプロパティを設定して、 内 DataGridViewCellPaintingEventArgs のセルに直接アクセスするのではなく、セルの外観を DataGridView変更します。 セルを手動で塗りつぶす場合は、 プロパティを HandledEventArgs.Handled に設定します true。 にtrue設定HandledEventArgs.Handledしない場合、セルはカスタマイズに合わせて描画されます。

コンストラクター

DataGridViewCellPaintingEventArgs(DataGridView, Graphics, Rectangle, Rectangle, Int32, Int32, DataGridViewElementStates, Object, Object, String, DataGridViewCellStyle, DataGridViewAdvancedBorderStyle, DataGridViewPaintParts)

DataGridViewCellPaintingEventArgs クラスの新しいインスタンスを初期化します。

プロパティ

AdvancedBorderStyle

現在の DataGridViewCell の境界線スタイルを取得します。

CellBounds

現在の DataGridViewCell の境界を取得します。

CellStyle

現在の DataGridViewCell のセル スタイルを取得します。

ClipBounds

再描画が必要な DataGridView の領域を取得します。

ColumnIndex

現在の DataGridViewCell の列インデックスを取得します。

ErrorText

現在の DataGridViewCell のエラー メッセージを表す文字列を取得します。

FormattedValue

現在の DataGridViewCell の書式設定した値を取得します。

Graphics

現在の Graphics の描画に使用される DataGridViewCell を取得します。

Handled

イベント ハンドラーがイベントを完全に処理したかどうか、またはシステムが独自の処理を継続する必要があるかどうかを示す値を取得または設定します。

(継承元 HandledEventArgs)
PaintParts

描画されるセル部分。

RowIndex

現在の DataGridViewCell の行インデックスを取得します。

State

現在の DataGridViewCell の状態を取得します。

Value

現在の DataGridViewCell の値を取得します。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
Paint(Rectangle, DataGridViewPaintParts)

指定した境界内の領域に対応するセルの指定した部分を描画します。

PaintBackground(Rectangle, Boolean)

指定した境界内の領域のセルの背景を描画します。

PaintContent(Rectangle)

指定した境界内の領域のセルの内容を描画します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください