C# と VB.NET の質問掲示板を参考
http://bbs.wankuma.com/index.cgi?mode=al2&namber=35761&KLOG=62ここも参考になった
http://blog.tauchi.net/2007/06/printdocument.html Private WithEvents PrintDocument1 As New System.Drawing.Printing.PrintDocument()
Private Sub Print_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Print.Click
'file()
' 印刷処理を実行
'PrintDocument1.Print()
'PrintForm1.Print(Me, PowerPacks.Printing.PrintForm.PrintOption.FullWindow)
'PrintDocumentオブジェクトの作成
Dim pd As New System.Drawing.Printing.PrintDocument
'PrintPageイベントハンドラの追加
AddHandler pd.PrintPage, AddressOf pd_PrintPage
'PrintDialogクラスの作成
Dim pdlg As New PrintDialog
'PrintDocumentを指定
pdlg.Document = pd
'印刷の選択ダイアログを表示する
If pdlg.ShowDialog() = DialogResult.OK Then
'OKがクリックされた時は印刷する
pd.Print()
End If
End Sub
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
End If
g.DrawString(s, New Font("MS Pゴシック", 9), Brushes.Black, X, Y)
'g.DrawString(DataGridView1(j, i).Value.ToString, _
' 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