FlexGrid for WinForms
PrintDocumentGridRenderer クラス
メンバ  使用例 

C1.Win.FlexGrid.6 アセンブリ > C1.Win.FlexGrid 名前空間 : PrintDocumentGridRenderer クラス
C1FlexGridをレンダリングしてページ付けされた System.Drawing.Printing.PrintDocumentに出力するオブジェクトを表します。
オブジェクト モデル
PrintDocumentGridRenderer クラス
シンタックス
'宣言
 
Public Class PrintDocumentGridRenderer 
public class PrintDocumentGridRenderer 
解説

このクラスは、複数のグリッドを、他のカスタムコンテンツと共に既存の System.Drawing.Printing.PrintDocumentオブジェクトに出力するために使用できます。

それを使用するには、出力するグリッドごとに1つの PrintDocumentGridRenderer を作成します。それから、ドキュメントのイベントを処理して、 CurrentPageプロパティの値が PageCountに等しくなるまでレンダラの C1.Win.FlexGrid.PrintDocumentGridRenderer.PrintPage(System.Drawing.Printing.PrintPageEventArgs)イベントを呼び出します。

下のコードは、2つのグリッドをレンダリングして1つの System.Drawing.Printing.PrintDocumentに出力します。
使用例
下のコードは、2つのグリッドをレンダリングして1つの System.Drawing.Printing.PrintDocumentに出力します。
Imports System.Data
Imports C1.Win.FlexGrid
            
Private _g1, _g2 As PrintDocumentGridRenderer
Private printDocument1 As Printing.PrintDocument = New Printing.PrintDocument()
            
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'データ設定
    Dim i, j As Integer
    flex1.Rows.Count = 20
    flex1.Cols.Count = 5
    i = 0
    Do While (i < flex1.Rows.Count)
        j = 0
        Do While (j < flex1.Rows.Count)
            flex1(i, j) = ((100 + i).ToString + " " + j.ToString)
            j = j + 1
        Loop
        i = (i + 1)
    Loop
    
    flex2.Rows.Count = 20
    flex2.Cols.Count = 5
    i = 0
    Do While (i < flex2.Rows.Count)
        j = 0
        Do While (j < flex2.Rows.Count)
            flex2(i, j) = ((200 + i).ToString + " " + j.ToString)
            j = j + 1
        Loop
        i = (i + 1)
    Loop
    
    AddHandler printDocument1.BeginPrint, AddressOf printDocument1_BeginPrint
    AddHandler printDocument1.PrintPage, AddressOf printDocument1_PrintPage
End Sub
            
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  'ボタンのクリック時、印刷プレビューダイアログを表示します。
  Using dlg As New PrintPreviewDialog()
    dlg.Document = Me.printDocument1
    dlg.ShowDialog(Me)
  End Using
End Sub
            
Private Sub printDocument1_BeginPrint(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintEventArgs)
  'グリッドのレンダラを作成し、印刷オプションを設定します。
  _g1 = New PrintDocumentGridRenderer(flex1)
  _g1.Options = PrintGridFlags.ActualSize
  
  'グリッドのレンダラを作成し、印刷オプションを設定します。
  _g2 = New PrintDocumentGridRenderer(flex2)
  _g2.Options = PrintGridFlags.FitToPageWidth Or PrintGridFlags.ExtendLastCol
End Sub
            
Private Sub printDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
  ' 1つめのグリッドをレンダリングします。
  If (_g1.CurrentPage < _g1.PageCount) Then
    _g1.PrintPage(e)
    e.HasMorePages = True
  ' 2つめのグリッドをレンダリングします。
  ElseIf (_g2.CurrentPage < _g2.PageCount) Then
    _g2.PrintPage(e)
    e.HasMorePages = _g2.CurrentPage < _g2.PageCount
  End If
End Sub
using C1.Win.FlexGrid;
using System.Drawing.Printing;
            
PrintDocumentGridRenderer _g1, _g2;
PrintDocument printDocument1 = new PrintDocument();
            
private void Form1_Load(object sender, EventArgs e)
{
    // データ設定
    flex1.Rows.Count = 20;
    flex1.Cols.Count = 5;
    for (int i = 0; i < flex1.Rows.Count; i++)
    {
        for (int j = 0; j < flex1.Rows.Count; j++)
        {
            flex1[i, j] = (100 + i).ToString() + " " + j.ToString();
        }
    }
    flex2.Rows.Count = 20;
    flex2.Cols.Count = 5;
    for (int i = 0; i < flex2.Rows.Count; i++)
    {
        for (int j = 0; j < flex2.Rows.Count; j++)
        {
            flex2[i, j] = (200 + i).ToString() + " " + j.ToString();
        }
    }
    
    // PrintDocumentGridRenderer クラス 302(1)
    printDocument1.BeginPrint += printDocument1_BeginPrint;
    printDocument1.PrintPage += printDocument1_PrintPage;
}
            
private void button1_Click(object sender, EventArgs e)
{
  //ボタンのクリック時、印刷プレビューダイアログを表示します。
  using (PrintPreviewDialog dlg = new PrintPreviewDialog())
  {
    dlg.Document = this.printDocument1;
    dlg.ShowDialog(this);
  }
}
            
void printDocument1_BeginPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
  // グリッドのレンダラを作成し、印刷オプションを設定します。
  _g1 = new PrintDocumentGridRenderer(flex1);
  _g1.Options = PrintGridFlags.ActualSize;
  
  // グリッドのレンダラを作成し、印刷オプションを設定します。
  _g2 = new PrintDocumentGridRenderer(flex2);
  _g2.Options = PrintGridFlags.FitToPageWidth | PrintGridFlags.ExtendLastCol;
}
            
void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
  // 1つめのグリッドをレンダリングします。
  if (_g1.CurrentPage < _g1.PageCount)
  {
    _g1.PrintPage(e);
    e.HasMorePages = true;
  }
  // 2つめのグリッドをレンダリングします。
  else if (_g2.CurrentPage < _g2.PageCount)
  {
    _g2.PrintPage(e);
    e.HasMorePages = _g2.CurrentPage < _g2.PageCount;
  }
}
継承階層

System.Object
   C1.Win.FlexGrid.PrintDocumentGridRenderer

参照

PrintDocumentGridRenderer メンバ
C1.Win.FlexGrid 名前空間