DataGridViewRowPostPaintEventArgs.RowIndex プロパティ

定義

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

public:
 property int RowIndex { int get(); };
public int RowIndex { get; }
member this.RowIndex : int
Public ReadOnly Property RowIndex As Integer

プロパティ値

現在の DataGridViewRow のインデックス。

次のコード例では、 プロパティを使用して現在の RowIndex 行にアクセスする方法を示します。 コードは、選択した行と 3 番目の列の積集合にあるセルの値を取得し、行全体にこの値を塗りつぶします。 変数 eは 型 DataGridViewRowPostPaintEventArgsです。 このコード例は、「方法: Windows フォーム DataGridView コントロールの行の外観をカスタマイズする」で提供されるより大きな例の一部です。

// Get the content that spans multiple columns.
object recipe =
    this.dataGridView1.Rows.SharedRow(e.RowIndex).Cells[2].Value;

if (recipe != null)
{
    String text = recipe.ToString();

    // Calculate the bounds for the content that spans multiple 
    // columns, adjusting for the horizontal scrolling position 
    // and the current row height, and displaying only whole
    // lines of text.
    Rectangle textArea = rowBounds;
    textArea.X -= this.dataGridView1.HorizontalScrollingOffset;
    textArea.Width += this.dataGridView1.HorizontalScrollingOffset;
    textArea.Y += rowBounds.Height - e.InheritedRowStyle.Padding.Bottom;
    textArea.Height -= rowBounds.Height -
        e.InheritedRowStyle.Padding.Bottom;
    textArea.Height = (textArea.Height / e.InheritedRowStyle.Font.Height) *
        e.InheritedRowStyle.Font.Height;

    // Calculate the portion of the text area that needs painting.
    RectangleF clip = textArea;
    clip.Width -= this.dataGridView1.RowHeadersWidth + 1 - clip.X;
    clip.X = this.dataGridView1.RowHeadersWidth + 1;
    RectangleF oldClip = e.Graphics.ClipBounds;
    e.Graphics.SetClip(clip);

    // Draw the content that spans multiple columns.
    e.Graphics.DrawString(
        text, e.InheritedRowStyle.Font, forebrush, textArea);

    e.Graphics.SetClip(oldClip);
}
' Get the content that spans multiple columns.
Dim recipe As Object = _
    Me.dataGridView1.Rows.SharedRow(e.RowIndex).Cells(2).Value

If (recipe IsNot Nothing) Then
    Dim text As String = recipe.ToString()

    ' Calculate the bounds for the content that spans multiple 
    ' columns, adjusting for the horizontal scrolling position 
    ' and the current row height, and displaying only whole
    ' lines of text.
    Dim textArea As Rectangle = rowBounds
    textArea.X -= Me.dataGridView1.HorizontalScrollingOffset
    textArea.Width += Me.dataGridView1.HorizontalScrollingOffset
    textArea.Y += rowBounds.Height - e.InheritedRowStyle.Padding.Bottom
    textArea.Height -= rowBounds.Height - e.InheritedRowStyle.Padding.Bottom
    textArea.Height = (textArea.Height \ e.InheritedRowStyle.Font.Height) * _
        e.InheritedRowStyle.Font.Height

    ' Calculate the portion of the text area that needs painting.
    Dim clip As RectangleF = textArea
    clip.Width -= Me.dataGridView1.RowHeadersWidth + 1 - clip.X
    clip.X = Me.dataGridView1.RowHeadersWidth + 1
    Dim oldClip As RectangleF = e.Graphics.ClipBounds
    e.Graphics.SetClip(clip)

    ' Draw the content that spans multiple columns.
    e.Graphics.DrawString(text, e.InheritedRowStyle.Font, forebrush, _
        textArea)

    e.Graphics.SetClip(oldClip)
End If

注釈

行インデックスを使用して、 内の現在の行に DataGridViewRowCollectionアクセスできます。

適用対象

こちらもご覧ください