プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (4件)

vb,net form 印刷


って調べたらいっぱい出てきたよ^^;
http://dobon.net/vb/dotnet/graphics/invokepaint. …

この回答への補足

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

補足日時:2008/05/23 01:42
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/07 20:39

もっと簡単なのは、なかなか無いですねぇ



先ほどのサイトの他のページに画像をプリンタに送信するサンプルがあったので、画面コピーと保存→プリンタに送信
って流れでやれば行けそうですが、だめなんですよね…たぶん

キーエミュレートも調べましたが、APIとかが出てきてかえって難しかった
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/07 20:41

印刷の手順自体は省くことが出来ません



.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
といった具合です
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/07 20:42

印刷は、バックグラウンドでEXCELを起動し印刷するのが一番簡単です。


場合によっては、VBAも使えますし。
EXCELの操作はCOMオプジェクトの解放が少し注意しないといけませんが
サンプルは結構あります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!