Visual Basic 中学校 掲示板 投稿内容
タグのない投稿を抽出 統計 RSS

Visual Basic 中学校 > 投稿一覧 >

C# dataGridView での 印刷プレビュー 解決済み

タグの編集...

投稿者 ケンケン   (社会人)   投稿日時 2022/5/6 14:33:46
C# です。

DBのデータをdataGridViewにデータを登録してから、
印刷プレビューの方法が分かりません。

何方かわかる方ご教授お願い致します。



投稿者 魔界の仮面弁士   (社会人)   投稿日時 2022/5/6 19:27:37
> DBのデータをdataGridViewにデータを登録してから、
DataGridView に DataTable をバインドして利用することをお奨めします。

DataTable を介さずに、DataGridView に直接データを記録していくこともできますが、
その場合、データ件数が増えるにつれてパフォーマンス上の問題が生じやすくなります。


> 印刷プレビューの方法が分かりません。
DataGridView には特に印刷機能はありません。
そのため、PrintDocument クラスの PrintPage イベントを実装して、
データを印刷するためのコードを自分で組み上げる必要があります。
※用紙内の印刷位置を座標して画像を送出するという、それなりに手間のかかるコードになります。

画面上の見た目だけでよければ、DrawToBitmap メソッドで画像化して
それを PrintPreviewControl (あるいは PrintPreviewDialog) で表示することはできます。
http://csharp.net-informations.com/datagridview/csharp-datagridview-printing.htm
https://dobon.net/vb/dotnet/graphics/invokepaint.html#drawtobitmap
https://dobon.net/vb/dotnet/graphics/printpreviewdialog.html

外観のキャプチャではなく、スクロール分も含めて内容を印刷したいという場合には、
DrawToBitmap を使うのではなく、DataGridView で表示させているデータを
PrintPreviewControl / PrintPreviewDialog で出力することになります。(手順的には同じ)
https://dobon.net/vb/dotnet/graphics/index.html


あるいは PrintDocument クラスを使う代わりに、マウス等でデザイン可能な
帳票ツールを使う手もあります。たとえば Microsoft Report (RDLC) など。
https://matsumotoyoshio.wordpress.com/2019/05/01/visual-studio-2017-%E3%81%A7-microsoft-report-%E3%82%92%E4%BD%BF%E3%81%86-visual-studio-%E7%94%A8-microsoft-rdlc-%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88%E3%83%87%E3%82%B6%E3%82%A4%E3%83%8A%E3%83%BC/
https://csharp.keicode.com/topics/ms-report-basic.php

投稿者 ケンケン   (社会人)   投稿日時 2022/5/9 16:54:16
回答ありがとうございます。
色々と参考になりました。