私は.NETとC#にかなり慣れていませんが、印刷したいDataGridViewがあります。そうするための最善の方法は何でしょうか?
DataGridViewをExcelにエクスポートしてから、Excelから印刷することができます。
DataGridViewにデータを表示せずに、PDFまたはExcelにエクスポートする機能を持つReportViewerコントロールにデータを表示することも検討できます。そこから、データを印刷することができます。
次に、DataGridView、PrintDocuemnt、およびButtonを追加します。
button click events {
printDocument1.Print();
}
printDocument1_PrintPage events {
Bitmap bm = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height);
this.dataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.dataGridView1.Width, this.dataGridView1.Height));
e.Graphics.DrawImage(bm, 0, 0);
}
これがすべてのデータ印刷です。
CodeProject には、DataGridViewsの印刷作業を行ったプロジェクトがあります。
あなたはすでに答えを受け入れていると思いますが、次の人がこの質問を検索するために...
また、Code Projectでこの素晴らしいプロジェクトを見つけて、実装しました。簡単で素敵でした。 http://www.codeproject.com/KB/grid/GridDrawer.Net.aspx
オン CodeProject :
上記は、実装が非常に簡単なもう1つの優れたDataGridView
プリンターです。
私はこのスレッドにJohnny Come Latelyであることを認識しています。私は何か他のものを探しているときにそれを見つけましたが、この方法で起こる他の人のためにこの優れた印刷ソリューションを参照したいと思いました(私がしたように)。
ここの誰かがそれを利用してくれることを願っています。
恐れ入りますが、組み込みの印刷サポートはありません。
印刷のサポートが組み込まれている Infragistics WinGrid などのサードパーティのコントロールを使用することもできます。
.NET WinFormコントロール(datagridviewなど)は、印刷をネイティブにサポートしていません。
ただし、datagridviewの場合は、「DrawToBitmap」を呼び出してから、そのビットマップを取得して印刷関数に渡して、紙に作成することができます。
DataGridViewsだけでなく印刷する場合は、より一般的なアプローチを実行する価値があります。 MigraDocを使用してから、独自のクラスを作成してDataGridViewsを読み取り、テーブルを表すMigraDocクラスを出力します。
すばらしい印刷パッケージはたくさんありますが、私はMigraDocの経験しかありません。
編集:
コメントに応えて、MigraDocテーブルを生成するために作成したコードとそれを使用してDataGridViewを表示する例を示す私のサイトへのリンクを次に示します( DataGridViewからMigraDocテーブル )。
私はこの方法が好きです http://www.codeproject.com/KB/grid/GridDrawer.Net.aspx しかし、プリンターを選択する方法はありますか。
プロセスの最後に自動印刷したい。したがって、これをオプション1として選択することを計画しているので、いつでもデフォルトのプリンターで印刷できます。また、プリンタを選択してから印刷するなどの別のオプションもあります。したがって、合計2つのptint関数があります。返信してください。乾杯