タイトル : Re^4: DataGridViewの内容を印刷 投稿日 : 2007/04/19(Thu) 11:50 投稿者 : シャチ
魔界の仮面弁士さん、返信ありがとうございます。 調べてなんとか動くようになりました。(No5367修正しました) 印刷する位置の設定がバイト計算している部分にこれでいいのかという不安はありますが。。。 よりより方法がありましたら、ご教授下さい。 また、色々な情報ありがとうございます。 そのへんも調べて実装してみたいと思います。 Private Sub But_Print_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_Print.Click ' 印刷処理を実行 PrintDocument1.Print() End Sub Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage Dim printingText As String = "" Dim i As Integer = 0 Dim RestLength As Integer = 0 For Each row As DataGridViewRow In DataGridView1.Rows '印刷する文字列と位置を設定 RestLength = System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount(DataGridView1.Item(0, i).Value) printingText = printingText & DataGridView1.Item(0, i).Value & Space(10 - RestLength) RestLength = System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount(DataGridView1.Item(1, i).Value) printingText = printingText & DataGridView1.Item(1, i).Value & Space(10 - RestLength) RestLength = System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount(DataGridView1.Item(2, i).Value) printingText = printingText & DataGridView1.Item(2, i).Value & Space(10 - RestLength) printingText = printingText & vbLf i = i + 1 Next PrintString(e, printingText) End Sub Private Sub PrintString(ByVal e As System.Drawing.Printing.PrintPageEventArgs, ByVal strPrint As String) ' 印刷ページの描画を行う e.Graphics.DrawString(strPrint, _ New Font("MS 明朝", 11), Brushes.Black, _ e.MarginBounds.Left, e.MarginBounds.Top, _ New StringFormat) End Sub |