2011-01-01 9 views

答えて

1

PrintFormは、という正確なのコピーを画面に表示することのみをサポートしています。プリントアウトにはスクロールバーが表示されます。もちろん、スクロールして表示されていないコントロールは表示しないでください。

これには、PrintDocumentコンポーネントを使用することで優れた回避策があります。プリントアウトは、とよく似ています()。これは、PrintFormから得られる粗粒のビットマップではありません。ただし、PrintPageイベントハンドラのコードを自分で記述する必要があります。かなりの量のコードですが、ハードコードではありません。ツリーのデバッグやコードの微調整を無駄にしないように、PrintPreviewDialogを使用してください。

+0

<しかし、ハードコードではありません>本当ですか? IMO、これは通常のLOBアプリケーション用に書いた最も苦痛なコードの一部です。通常、Microsoft Report Viewerコントロールなどのレポートソフトウェアを統合して印刷を行う方が、品質が向上し、簡単になります。 –

+0

@bin - 彼自身のごとく私は推測する。 CRやRDLCのようなツールは私にとってはLispに似ていました。プロジェクトを終えて、決して*決して*することを約束しないでください。いずれにしても、PrintFormの置き換えとしては非常に不適切です。紙面にdbaseクエリをダンプするのに適しています。フォームベースのレポートでは何も繰り返されません。 InfoPathがより適しています。多分。 –

+0

フォームを印刷するだけではめったに良い解決法ではありません。いつも、スクロールバーを備えたコントロールがあり、プリンタに送信される切り詰められたテキストは誰も満足できません。したがって、実際のフォーム自体にコードを書くだけで、ビジュアルデザイナーの助けを借りずに印刷を実装することも、レポートツールを使用することもできます。時には、昔ながらのスタイルのモノスペースのプリントアウトをすると、物事で逃げることができますが、それはどちらもうまくいかないかもしれません... –