none
DataGridViewの内容を印刷 RRS feed

  • 質問

  • VisualBasic2008ExpressEditionを使用しています。

    データベースウィザードを使用してAccessファイルとのやりとりには成功しているのですが。

    DataGridViewに取得した内容を印刷したいと考えております。

    過去の質問も見たのですが、何を使用して、どのように実施していけばよいのか、手順すら解らない状況であります。

    印刷機能の初歩も解らない状況ですので、手がかりが全く解りません。

    参考となるリンクや使用すべきツール等お教え願えたら幸いです。

    2010年5月30日 9:00

回答

  • DataGridViewには自動で印刷してくれる機能はありません。
    印刷したい場合は自分でどのように印刷するかのコードを書かなければなりません。

    印刷の仕方のサンプルとしてはこんなのがあります。
    Codeproject
    • 回答としてマーク zue11364 2010年5月30日 12:21
    2010年5月30日 10:40
  • DataGridViewの表示元になっているDataTableやDataViewを印刷することが多いと思います。クリスタルレポートなどの帳票ツールを使えば簡単にそれらを印刷できるのですが、Visual Basic 2008 Express Editionにはそのようなレポートツールが付属していません。したがって、以下を参考にしてPrintDocumentで印刷すれば良いと思います。

    複数ページの印刷を行うには?[C#、VB]
    http://www.atmarkit.co.jp/fdotnet/dotnettips/397printmoredoc/printmoredoc.html


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク zue11364 2010年5月30日 19:45
    2010年5月30日 12:47
    モデレータ
  • コンストラクタであるNew()の中に元々InitializeComponent()メソッドがあるのですが、それを削除されていませんか? InitializeComponent()はデザイナが自動的に作成したコードを実行するために必要なメソッドです。

    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク zue11364 2010年6月5日 16:52
    2010年5月31日 0:07
    モデレータ

すべての返信

  • DataGridViewには自動で印刷してくれる機能はありません。
    印刷したい場合は自分でどのように印刷するかのコードを書かなければなりません。

    印刷の仕方のサンプルとしてはこんなのがあります。
    Codeproject
    • 回答としてマーク zue11364 2010年5月30日 12:21
    2010年5月30日 10:40
  • DataGridViewの表示元になっているDataTableやDataViewを印刷することが多いと思います。クリスタルレポートなどの帳票ツールを使えば簡単にそれらを印刷できるのですが、Visual Basic 2008 Express Editionにはそのようなレポートツールが付属していません。したがって、以下を参考にしてPrintDocumentで印刷すれば良いと思います。

    複数ページの印刷を行うには?[C#、VB]
    http://www.atmarkit.co.jp/fdotnet/dotnettips/397printmoredoc/printmoredoc.html


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク zue11364 2010年5月30日 19:45
    2010年5月30日 12:47
    モデレータ
  • 早速のご教授ありがとうございます。

    gekkaさん、trapemiyaさんお二方のご教授内容を参考に頑張ってみます。

     printTestというファイルを作成して、trapemiyaさん照会のサイトをTestしてみましたが、

    Public Sub New()
            MyBase.New()
            '……中略……
            ' PrintDocumentコンポーネントの生成
            PrintDocument1 = New PrintDocument

            ' PrintPreviewDialogオブジェクトの生成
            PrintPreviewDialog1 = New PrintPreviewDialog
            ' Documentプロパティの設定
            PrintPreviewDialog1.Document = PrintDocument1

        End Sub

    アンダーラインのところがエラーになり悩んでおります。

    エラー内容は「デザイナで生成された型’printTest.Form1'の'Public Sub New()'はInitializeComponentメソッドを呼び出さなければなりません。」となります。

    完全に??の状態になっています。

    ご迷惑をおかけしますがご教授お願いいたします。

    2010年5月30日 19:46
  • コンストラクタであるNew()の中に元々InitializeComponent()メソッドがあるのですが、それを削除されていませんか? InitializeComponent()はデザイナが自動的に作成したコードを実行するために必要なメソッドです。

    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク zue11364 2010年6月5日 16:52
    2010年5月31日 0:07
    モデレータ
  • 急な出張に出ていたため、返信が遅くなり申し訳ありませんでした。

    デザイナで自動生成される部分まで記述していたようでした。

    PrintDocumentと、PrintPreviewDialogを関連づけて、印刷並びにPreviewの表示に成功しました。

    ご教授に感謝します。

    2010年6月5日 17:13