tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。