PowerTools MultiRow for Windows Forms 8.0J
SectionPainting イベント
使用例 

セクションの描画が必要になると発生します。
構文
イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、SectionPaintingEventArgs 型の引数を受け取りました。次の SectionPaintingEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ解説
ClipBounds現在の描画Sectionのクリッピング境界を取得します。  
Graphicsセルの描画に使用されたグラフィックを取得します。  
Handled System.ComponentModel.HandledEventArgsから継承されます。
IsPrintingこのセルが印刷中かどうかを示す値を取得します。  
RowIndexイベントが発生したオーナーRowのインデックスを取得します。  
Scopeイベントが発生したセルの領域を取得します。  
SectionBoundsこのセクションの境界を取得します。  
SectionIndexイベントが発生したオーナーSectionのインデックスを取得します。  
ZoomFactor現在のGcMultiRowコントロールのズーム倍率を取得します。  
解説

ユーザーはこのイベントを処理して、コントロール内のセクションの外観をカスタマイズできます。セクション全体を独自に描画できるほか、セクションの特定の部分を描画し、残りの部分の描画にSectionPaintingEventArgs.PaintSectionBackgroundSectionPaintingEventArgs.PaintCellsSectionPaintingEventArgs.PaintSectionBorderの各メソッドを使用することもできます。

このイベントを処理するときは、セクションに直接アクセスするのではなく、イベントハンドラのパラメーターを通じてセクションにアクセスしてください。

描画結果はPrintStyle.Richスタイルの印刷で出力できますが、PrintStyle.Compactスタイルの印刷では出力できません。

使用例
次のサンプルコードは、セクションの描画ロジックをカスタマイズする方法を示します。このサンプルコードは、CellPaintingイベントに示されている詳細なコード例の一部を抜粋したものです。
void gcMultiRow_SectionPainting(object sender, SectionPaintingEventArgs e)
{
    if (e.RowIndex == this.gcMultiRow.NewRowIndex && e.Scope == CellScope.Row)
    {
        e.Paint(e.ClipBounds);

        StringFormat sf = new StringFormat();
        sf.Alignment = StringAlignment.Center;

        // Paint string in section face.
        e.Graphics.DrawString("Edit cell in this row to add new rows", gcMultiRow.Font, Brushes.Gray, e.SectionBounds, sf);

        // If you customize the paint logic, make sure, the Handled property should be set to true.
        e.Handled = true;
    }
}
Private Sub gcMultiRow_SectionPainting(ByVal sender As Object, ByVal e As SectionPaintingEventArgs) Handles gcMultiRow.SectionPainting
    If e.RowIndex = Me.gcMultiRow.NewRowIndex AndAlso e.Scope = CellScope.Row Then
        e.Paint(e.ClipBounds)

        Dim sf As New StringFormat()
        sf.Alignment = StringAlignment.Center

        ' Paint string in section face.
        e.Graphics.DrawString("Edit cell in this row to add new rows", gcMultiRow.Font, Brushes.Gray, e.SectionBounds, sf)

        ' If you customize the paint logic, make sure, the Handled property should be set to true.
        e.Handled = True
    End If
End Sub
参照

GcMultiRow クラス
GcMultiRow メンバ

 

 


© 2008-2015 GrapeCity inc. All rights reserved.