0
データベースから値を取得するdatagridview
を印刷しようとしましたが、それを行うことはできましたが、印刷後に列名が表示されない理由はわかりません。DataGridviewの印刷
Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
With DataGridView3
Dim fmt As StringFormat = New StringFormat(StringFormatFlags.LineLimit)
Dim text As String = ("TrashCollection - Estatísticas")
fmt.LineAlignment = StringAlignment.Center
fmt.Trimming = StringTrimming.EllipsisCharacter
e.Graphics.DrawString(text, New Font("Verdana", 10, FontStyle.Bold), Brushes.Black, 350, 30)
Dim y As Single = e.MarginBounds.Top
Do While mRow < DataGridView3.RowCount
Dim row As DataGridViewRow = .Rows(mRow)
Dim x As Single = e.MarginBounds.Left
Dim h As Single = 0
For Each cell As DataGridViewCell In row.Cells
Dim rc As RectangleF = New RectangleF(x, y, cell.Size.Width, cell.Size.Height)
e.Graphics.DrawRectangle(Pens.Black, rc.Left, rc.Top, rc.Width, rc.Height)
If (newpage) Then
e.Graphics.DrawString(DataGridView3.Columns(cell.ColumnIndex).HeaderText, .Font, Brushes.Black, rc, fmt)
Else
e.Graphics.DrawString(DataGridView3.Rows(cell.RowIndex).Cells(cell.ColumnIndex).FormattedValue.ToString(), .Font, Brushes.Black, rc, fmt)
End If
x += rc.Width
h = Math.Max(h, rc.Height)
Next
newpage = False
y += h
mRow += 1
If y + h > e.MarginBounds.Bottom Then
e.HasMorePages = True
mRow -= 0
newpage = True
Exit Sub
End If
Loop
mRow = 0
End With
End Sub
そして、印刷ボタンに、私はこのコードの行があります:この1つはのPrintDocumentのためである
:以下は、私が現在使用しているコードであるので、
Private Sub cmdPrintDetailed_Click(sender As Object, e As EventArgs) Handles cmdPrintDetailed.Click
PrintDocument1.DefaultPageSettings.Landscape = True
PrintPreviewDialog1.Document = PrintDocument1
PrintPreviewDialog1.ShowDialog()
End Sub
は、基本的には、単に行の代わりに列名も印刷できるようにしたいと考えています。印刷プレビューでは、すべてのdatagridview
を列で見ることができます。
Hey!ご協力いただきありがとうございますが、これはデータベースのデータで動作しますか? –
さて、データがdatagridviewに入ったら、問題はありません。あなたのコードとコードを比較するだけです。リンクからのコードは、A4よりも広く、A4より長く印刷します。サンプルをロードして実行するだけです。 – minimalist
私はそのコードを使用しようとしていましたが、 'オブジェクト参照はインスタンスとして設定されていません... 'というプレビューボタンにエラーが表示されました。どうすればいいですか? –