Copyright © GrapeCity inc. All rights reserved.
True DBGrid for WinForms
カスタム印刷プレビューの作成
タスク別ヘルプ > その他 > カスタム印刷プレビューの作成

カスタム印刷プレビューを作成し、印刷時のグリッドの表示方法をカスタマイズできます。これは、Init メソッドを使用して実行できます。C1.Win.C1TrueDBGrid.PrintForm から継承された、フォームの FormBorderStyle、 MaximizeBox、 MinimizeBoxControlBox などのプロパティをオーバーライドするには、PrintFormInit メソッドをオーバーライドします。まず base.Init() を呼び出し、次に希望するプロパティを設定します。

以下の手順を実行します。

  1. ツールボックスに移動し、SplitContainer パネルをダブルクリックして、それをフォームに追加します。
  2. プロパティウィンドウに移動し、SplitContainerパネルのOrientation プロパティをHorizontalに設定します。
  3. SplitContainerの上部パネル内でクリックし、ツールボックスに移動して Buttonコントロールをダブルクリックし、それをアプリケーションに追加します。
  4. プロパティウィンドウで、Button コントロールの Textプロパティを "Preview" に設定します
  5. C1SplitContainer の下部パネル内でクリックし、ツールボックスに移動して C1TrueDBGrid コントロールを見つけてダブルクリックし、それをアプリケーションに追加します。
  6. C1TrueDBGrid コントロールのスマートタグをクリックして、タスクメニューから、親コンテナへのドッキングオプションを選択します。
  7. ソリューションエクスプローラで、プロジェクトを右クリックして参照の追加を選択します。参照の追加ダイアログボックスで、C1.C1Report および C1.Win.C1Report アセンブリを見つけて選択し、OKをクリックします。これは印刷プレビュー用に必要になります。
    Note: TrueDBGrid's export and printing features uses the C1.Win.Printing NuGet package, which provides three libraries: C1.PrintDocument, C1.Win.PrintPreview and C1.Win.RibbonPreview. Each library provides a set of previewing controls or components. The PrintDocument library provides the PrintDocument and MultiDocument components, the PrintPreview library provides the PreviewOutlineView, PreviewPane, PreviewTextSearchPanel, Thumbnail, PrintPreviewControl and PrintPreviewDialog components, and RibbonPreview  provides the RibbonPreview and RibbonPreviewDialog components. Since C1Report is now obsolete, make sure that the references for C1Report libraries is replaced by  individual library references in the C1.Win.Printing nuget.
  8. フォームをダブルクリックしてコードビューに切り替え、Form_Load イベントハンドラを作成します。
  9. 次のコードを Form_Load イベントに追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    FillGrid()
    

    C#コードの書き方

    C#
    コードのコピー
    FillGrid();
    
  10. FillGrid イベントを Form_Load イベントの直下に追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Private Sub FillGrid()
        Dim maxrows As Integer = 5
     
        Dim dt As New DataTable("testdatatable")
     
        Dim dc As DataColumn
        Dim dr As DataRow
     
        ' 整数列を設定します
        dc = New DataColumn()
        dc.DataType = System.Type.[GetType]("System.DateTime")
        dc.ColumnName = "DT1"
        dt.Columns.Add(dc)
     
        ' 文字列を実行します
        dc = New DataColumn()
        dc.DataType = System.Type.[GetType]("System.DateTime")
        dc.ColumnName = "DT2"
        dt.Columns.Add(dc)
     
        ' 文字列を実行します
        dc = New DataColumn()
        dc.DataType = System.Type.[GetType]("System.DateTime")
        dc.ColumnName = "DT3"
        dt.Columns.Add(dc)
     
        Dim rnd As New Random()
        For i As Integer = 0 To maxrows - 1
            dr = dt.NewRow()
            dr("DT1") = DateTime.Now.AddDays(i)
            dr("DT2") = DateTime.Now.AddMonths(i)
            dr("DT3") = DateTime.Now.AddYears(i)
            dt.Rows.Add(dr)
        Next
        Me.C1TrueDBGrid1.DataSource = dt
        Me.C1TrueDBGrid1.Columns("DT1").EnableDateTimeEditor = True
        Me.C1TrueDBGrid1.Columns("DT2").EnableDateTimeEditor = True
        Me.C1TrueDBGrid1.Columns("DT3").EnableDateTimeEditor = True
    End Sub
    

    C#コードの書き方

    C#
    コードのコピー
    private void FillGrid()
    {
        int maxrows = 5;
     
        DataTable dt = new DataTable("testdatatable");
     
        DataColumn dc;
        DataRow dr;
     
        // 整数列を設定します
        dc = new DataColumn();
        dc.DataType = System.Type.GetType("System.DateTime");
        dc.ColumnName = "DT1";
        dt.Columns.Add(dc);
     
        // 文字列を実行します
        dc = new DataColumn();
        dc.DataType = System.Type.GetType("System.DateTime");
        dc.ColumnName = "DT2";
        dt.Columns.Add(dc);
     
        // 文字列を実行します
        dc = new DataColumn();
        dc.DataType = System.Type.GetType("System.DateTime");
        dc.ColumnName = "DT3";
        dt.Columns.Add(dc);
     
        Random rnd = new Random();
        for (int i = 0; i < maxrows; i++)
        {
            dr = dt.NewRow();
            dr["DT1"] = DateTime.Now.AddDays(i); ;
            dr["DT2"] = DateTime.Now.AddMonths(i);
            dr["DT3"] = DateTime.Now.AddYears(i);
            dt.Rows.Add(dr);
        }
        this.c1TrueDBGrid1.DataSource = dt;
        this.c1TrueDBGrid1.Columns["DT1"].EnableDateTimeEditor = true;
        this.c1TrueDBGrid1.Columns["DT2"].EnableDateTimeEditor = true;
        this.c1TrueDBGrid1.Columns["DT3"].EnableDateTimeEditor = true;
    }
    
  11. ソリューションエクスプローラで、プロジェクトを右クリックして追加Windows フォームを選択します。新しい項目の追加ダイアログボックスで、フォームに 「PrintForm1」 という名前を付けて、追加ボタンをクリックします。
  12. 新しいフォームをダブルクリックしてコードビューに切り替えます。
  13. C1.Win.C1TrueDBGrid.PrintForm から継承する初期クラスの宣言を編集します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Public Class PrintForm1
        Inherits C1.Win.C1TrueDBGrid.PrintForm
    

    C# コードの書き方

    C#
    コードのコピー
    public partial class PrintForm1 : C1.Win.C1TrueDBGrid.PrintForm
    
  14. 次のコードをクラスの宣言の下に追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Protected Overrides Sub Init()
        MyBase.Init()
        FormBorderStyle = FormBorderStyle.Sizable
        Me.ControlBox = True
        Me.MinimizeBox = False
        Me.MaximizeBox = False
    End Sub
    

    C#コードの書き方

    C#
    コードのコピー
    protected override void Init()
    {
        base.Init();
        FormBorderStyle = FormBorderStyle.Sizable;
        this.ControlBox = true;
        this.MinimizeBox = false;
        this.MaximizeBox = false;
    }
    
  15. デザインビューのForm1 に戻り、Button をダブルクリックし、コードビューに切り替えて Button_Click イベントハンドラを作成します。
  16. 次のコードをButton_Clickイベントハンドラに追加して、"ProjectName" がプロジェクトの名前に置き換えられていることを確認します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    C1TrueDBGrid1.PrintInfo.PreviewFormClassName = "ProjectName.PrintForm"
    C1TrueDBGrid1.PrintInfo.PrintPreview()
    

    C#コードの書き方

    C#
    コードのコピー
    c1TrueDBGrid1.PrintInfo.PreviewFormClassName = "ProjectName.PrintForm1";
    c1TrueDBGrid1.PrintInfo.PrintPreview();
    

このトピックの作業結果

アプリケーションを実行し、アプリケーションにボタンとデータを表示するグリッドが表示されることを確認します。プレビューボタンをクリックして、カスタマイズされた印刷プレビューフォームが表示されることを確認します。フォームには、閉じるボタンだけが表示され、最小化ボタンと最大化ボタンは表示されません。