• 締切済み

VBのDataGridView印刷

VB2005でFormに表示されているDataGridViewに検索済みで表示されている内容を用意したボタンを押すと印刷したいのですがソースをどのように書いたらいいか分かりません。 いろんなページを確認しまししたが分かりません。 印刷ができればいいんですけど。 どなたか説明してくださる人はいませんか?

みんなの回答

  • cabwik
  • ベストアンサー率0% (0/0)
回答No.2

VBの印刷処理のイベントに PrintDocumentというイベントがあり、そこで DataGridViewの内容を書き込むのですが、 こちらのソースが参考になればよいのですが、 Private Sub pd_PrintPage(ByVal sender As Object, _ ByVal e As System.Drawing.Printing.PrintPageEventArgs) Dim g As Graphics = e.Graphics '文字列を描く 'g.DrawString(DataGridView1(0, 0).Value, _ ' New Font("MS Pゴシック", 12), Brushes.Black, e.MarginBounds.Left, e.MarginBounds.Top) Dim X As Integer Dim Y As Integer Y = e.MarginBounds.Top For i As Integer = 0 To DataGridView1.Rows.Count - 1 X = e.MarginBounds.Left For j As Integer = 0 To DataGridView1.Columns.Count - 1 Dim s As String If DataGridView1(j, i).Value Is Nothing Then s = "" Else s = DataGridView1(j, i).Value.ToString End If g.DrawString(s, New Font("MS Pゴシック", 9), Brushes.Black, X, Y) 'g.DrawString(s, _ ' New Font("MS Pゴシック", 12), Brushes.Black, X, Y) X += DataGridView1.Columns(j).Width Next j Y += DataGridView1.Rows(i).Height Next i 'このページで終了 e.HasMorePages = False End SubこちらはDataGridViewの内容を書き込む際、DataGridViewのRowsと Columnを同時に移動させるというループ処理です。 このソースでいけばおそらくうまくいくと思うのですが、 いかがでしょう。

sawa0827
質問者

お礼

かなり参考になり、印刷処理が実現できました。 コードも記述していただき本当にありがとうございました。 非常に助かりました。

すると、全ての回答が全文表示されます。
  • One_net
  • ベストアンサー率37% (13/35)
回答No.1

DataGridView の印刷はDataGridViewの機能にはありません。 印刷するためには印刷用に別の機能をコードで書いてやる必要があります。以下参考になるURLを紹介しておきますから勉強してください。 http://dobon.net/vb/dotnet/graphics/

sawa0827
質問者

お礼

サイト確認しました。 PrintDocumentを使用するんですね。 今後も教えていただいたサイト等を参考に勉強しようと思います。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A