2011-06-19 30 views
3

私のアプリケーションはグループ化された線形データを表示します。表現はかなりシンプルです。 UIは、いくつかのGroupBoxに分けられ、TextBoxとLabelsでデータが表示されます。フォームの特定の領域を印刷するにはどうすればよいですか?

ここでは簡単な方法でデータを印刷したいと思います。私の考えは、GroupBoxのみを印刷し、印刷されたページが少し良く見えるように調整することです。

WinFormsにはどのようなアプローチが推奨できますか、それともベストプラクティスですか?あらかじめ定義されたヘルパークラスが存在しますか?

答えて

5

Control.DrawToBitmap()メソッドを使用して、イベントハンドラ内の用紙に描画できる画像のコントロールをe.Graphics.DrawImage()で生成できます。

これは、長いショットでは「ベストプラクティス」ではありません。プリンタは、モニタよりはるかに大きな解像度を持っています。通常、600ドット/ 96ドットです。コントロールを郵便切手に変えないようにするには、ビットマップを係数6で再スケーリングする必要があります。PrintDocumentクラスは、デフォルトでこれを行います。その結果は粒状であり、特に、典型的な腕の長さで見たときにテキストが貧弱に見えます。あなたはGraphics.DrawString()との見栄えの良いテキストしか得られません。つまり、ビットマップをコピーする代わりにコードを記述します。あなたがコードを書き留めるのを避けるのに役立つたくさんのレポートジェネレータがあります。

+0

確かに。 Visual Studioでは、記述している状況に合わせてRDFプロジェクトを作成できます。 –

0

簡単な方法は、Visual Basic PowerPacksのPrintFormコンポーネントを使用することです。 VSのツールボックスでPrintFormコンポーネントを探し、フォームの表面にドラッグするだけです。それで全部です。

関連する問題