- - PR -
DataGridの内容を印刷
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-01-31 17:25
VB.NETでWinformsを使ってます。
DataSetの内容をDataGridに表示し、 その内容を「印刷」したいのですがどうしたらよいのでしょうか? ご教授よろしくお願いします。 |
|
投稿日時: 2003-02-03 10:59
質問の前に確認させて頂きます。
前のスレッドに対しては解決しましたか? 解決した場合はどうやって解決したのか、 解決しなかった場合はどこでつまづいているのか、 教えて頂いた人に対して返事を書くのがマナーです。 返事も書かずに似たような質問を立てるのは、 せっかく時間を割いて教えて頂いた方に失礼だとは思いませんか? 教える人の立場をよく考えてあげてください。 次回から、その点を考慮して頂ければ幸いです。 さて、本題に入りますが、この質問からどうやって「印刷」したいのかが 残念ながら読み取れません。 「印刷」ボタンを押下して印刷したいのか? はたまた、DataGridにDataBindして表示されたら自動的に印刷したいのか? それとも、印刷というイベントを発生させる手法を教えて欲しいのか? 目的が漠然とし過ぎておりますので、もうすこし具体的に「こうしたい」というのを 説明して頂けないでしょうか? [ メッセージ編集済み 編集者: まゆりん 編集日時 2003-02-03 11:20 ] |
|
投稿日時: 2003-02-03 11:46
>返事も書かずに似たような質問を立てるのは、
>せっかく時間を割いて教えて頂いた方に失礼だとは思いませんか? >教える人の立場をよく考えてあげてください。 大変失礼しました。 自分が返信したときの事を考えると反省します。 >さて、本題に入りますが、この質問からどうやって「印刷」したいのかが >残念ながら読み取れません。 行いたいことは、FormLoad時にデータベースから、DataGrid(DataSetを使用)に表示し、 「印刷ボタン」の押下でDataGridに表示されている内容を印刷したいのです。 ただ単に文字が表示するだけ(レイアウト無視)で構いません。 以上よろしくお願いします。 |
|
投稿日時: 2003-02-03 13:09
こんにちわ。
印刷はいろいろと方法があると思うのですが、 レイアウト無視でよければPrintDocumentクラスを利用するのが簡単ではないでしょうか。 Imports System.Drawing.Printing Private sub button1_click //// Dim printDoc as New PrintDocument AddHandler PrintDoc.PrintPage, AddressOf PrintDataGridData Printdoc.print end sub 'プライベートメソッド Private Sub PrintDataGridData(sender as object , e as printPageEventArgs) dim text as string = "test" <-DataGridからテキスト作成 e.Graphics.DrawString(text , new font("なにかフォント"),Brushes.Black) end sub 動作未確認コード適当ですが。 |
|
投稿日時: 2003-02-03 14:17
Togさんありがとう御座います。
ただいまコードと格闘中です。 e.Graphics.DrawString(text , New Font("MS UI Gothic", 10),Brushes.Black) この1行で「オーバーロードの解決に失敗しました。」 引数はあってると思うのですが・・・ |
|
投稿日時: 2003-02-03 15:35
パンダです。
オーバーロードのエラーは下記のコードで解決しました。 e.Graphics.DrawString(StringToPrint, New Font("MS UI Gothic", 10), Brushes.Black, 120, 120) と描画位置を設定して解決しました。 しかし >dim text as string = "test" <-DataGridからテキスト作成 DataGridからのテキストの取得が分かりません。 1行なら取得できるのですが、複数行データがある場合はどうすればよいのでしょうか? ループ? |
|
投稿日時: 2003-02-03 15:59
すみません、調べている間に大分解決されていたようですね(汗)。
私はWeb専門の為Windows側のコードまではよく知らないのですが、 DataGridの行数を取得して、その行数分ループさせてテキスト取得は如何でしょうか? 一度には取得できなかったと思います。 (もしその方法があれば私もご教授願いたいです。) #ところで、ここでの行はDataGridの行の話であって、テキストの行じゃないですよね? [ メッセージ編集済み 編集者: まゆりん 編集日時 2003-02-03 16:02 ] |
|
投稿日時: 2003-02-03 16:51
パンダです。
>DataGridの行数を取得して、その行数分ループさせてテキスト取得は如何でしょうか? >一度には取得できなかったと思います。 やっぱ一度に取得は出来ないんでしょうかね? 一行だけならDataSet1.Items(0,0)で取れました。 これをループで行うとなると・・・?? >#ところで、ここでの行はDataGridの行の話であって、テキストの行じゃないですよね? そうです。DataGrid(DataSet)の行です。 DataSetを使っているので一度に取得できそうなのですが。 う〜ん(難)。 |