• 締切済み

フォームを印刷するには

Visual Basic 2005 を使い、勉強をし始めた初心者です。フォーム(デザイン)を印刷したい、つまりプログラミングしたので、「結果」のでたフォームを印刷したいのですが、どのようにしたらよいでしょうか。 全くの素人、初心者ですので試行錯誤しましたが、全くだめです。 よろしくお願いいたします。

みんなの回答

回答No.4

印刷は、バックグラウンドでEXCELを起動し印刷するのが一番簡単です。 場合によっては、VBAも使えますし。 EXCELの操作はCOMオプジェクトの解放が少し注意しないといけませんが サンプルは結構あります。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

印刷の手順自体は省くことが出来ません .NET Framework2.0の場合 PrintDialog,PrintPreviewDialogやPrintDocumentクラスを使う事になります Formに上記2つのコントロールをコントロールボックスから ドラッグアンドドロップで追加します Formのコードに Dim myImage as Image と記述して 印刷用のイメージの受け皿を用意します フォームの印刷をさせるイベントを作成します ... たとえばボタンのClickイベントなど イベントハンドラのなかで   ' イメージをForm自身の大きさで作成   myImage = New Bitmap( Me.Width, Me.Height )   ' イメージを操作するGraphicsオブジェクトを作成   dim g as Graphics = Graphics.FromImage( myBmp )   ' 画面表示から myBmpへコピーする   g.CopyFromScreen( Me.Left, Me.Top, 0, 0, Me.Size() )   ' Graphicsオブジェクトは用済みなので破棄する   g.Dispose()   PrintPreviewDialog1.Document = PrintDocument1   PrintPreviewDialog1.ShowDialog()   ' プレビューではなく印刷の場合   ' PrintDialog1.docuemnt = PrintDocument1   ' if PrintDialog.ShowDialog() = DialogResult.OK then   '   PrintDocument1.Print   ' end if   ' ここまでのコメントを外す 次に 印刷ページの中身を記述します フォームのデザイナで『PrintDocument1』を選択 プロパティウィンドウの『雷マーク』をクリックしてイベントモードにする 『PrintPage』の右側の四角をダブルクリックする 作成されたスケルトンの中身を if myImage IsNot Nothing then   ' 描画用のGraphicsオブジェクトを引数eから作成   dim g as Graphics = e.Graphics   ' 印刷用イベントで作成したイメージを ページ内で描画   g.DrawImage( myImage, 8, 8 ) End if といった具合です

happycat
質問者

お礼

大変詳細にどうもありがとうございました。初心者にはなかなか 難しいものがありましたが、勉強になりました。 ありがとうございました。

  • pulsa
  • ベストアンサー率57% (34/59)
回答No.2

もっと簡単なのは、なかなか無いですねぇ 先ほどのサイトの他のページに画像をプリンタに送信するサンプルがあったので、画面コピーと保存→プリンタに送信 って流れでやれば行けそうですが、だめなんですよね…たぶん キーエミュレートも調べましたが、APIとかが出てきてかえって難しかった

happycat
質問者

お礼

なかなか簡単で確実なのがないということがわかりましたし、 勉強になりました。どうもありがとうございました。

  • pulsa
  • ベストアンサー率57% (34/59)
回答No.1

vb,net form 印刷 って調べたらいっぱい出てきたよ^^; http://dobon.net/vb/dotnet/graphics/invokepaint.html

happycat
質問者

お礼

確かに勉強になりました。どうもありがとうございました。

happycat
質問者

補足

このページのようなものを見て、難しく感じているのでもっと簡単に 一発でハードコピーのような形で印刷できませんでしょうかという意味で質問したのですが、言葉足りませんでした。すみません。

関連するQ&A

専門家に質問してみよう