- 締切済み
フォームを印刷するには
Visual Basic 2005 を使い、勉強をし始めた初心者です。フォーム(デザイン)を印刷したい、つまりプログラミングしたので、「結果」のでたフォームを印刷したいのですが、どのようにしたらよいでしょうか。 全くの素人、初心者ですので試行錯誤しましたが、全くだめです。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- chibita_papa
- ベストアンサー率60% (127/209)
印刷は、バックグラウンドでEXCELを起動し印刷するのが一番簡単です。 場合によっては、VBAも使えますし。 EXCELの操作はCOMオプジェクトの解放が少し注意しないといけませんが サンプルは結構あります。
- redfox63
- ベストアンサー率71% (1325/1856)
印刷の手順自体は省くことが出来ません .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 といった具合です
- pulsa
- ベストアンサー率57% (34/59)
もっと簡単なのは、なかなか無いですねぇ 先ほどのサイトの他のページに画像をプリンタに送信するサンプルがあったので、画面コピーと保存→プリンタに送信 って流れでやれば行けそうですが、だめなんですよね…たぶん キーエミュレートも調べましたが、APIとかが出てきてかえって難しかった
お礼
なかなか簡単で確実なのがないということがわかりましたし、 勉強になりました。どうもありがとうございました。
- pulsa
- ベストアンサー率57% (34/59)
vb,net form 印刷 って調べたらいっぱい出てきたよ^^; http://dobon.net/vb/dotnet/graphics/invokepaint.html
お礼
確かに勉強になりました。どうもありがとうございました。
補足
このページのようなものを見て、難しく感じているのでもっと簡単に 一発でハードコピーのような形で印刷できませんでしょうかという意味で質問したのですが、言葉足りませんでした。すみません。
お礼
大変詳細にどうもありがとうございました。初心者にはなかなか 難しいものがありましたが、勉強になりました。 ありがとうございました。