<pre><code>Sub PrintDoc_PrintPage(ByVal sender As Object, ByVal e As _
System.Drawing.Printing.PrintPageEventArgs) Handles PrintDoc.PrintPage
Try
Dim ZellBox As New Rectangle
Dim sf As New StringFormat
Dim LRand As Decimal
Dim RRand As Decimal
Dim ROben As Decimal
Dim RUnten As Decimal
Dim PageWidth As Integer
Dim PageHeight As Decimal
Dim dgv_MaxZeilenIndex As Integer
Dim dgv_MaxSpaltenIndex As Integer
Dim dgv_Breite As Integer
Dim ZellInhalt As String
Dim PosX As Integer
Dim PosY As Integer
Dim PosX1 As Integer
e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
e.Graphics.TextRenderingHint = _
Drawing.Text.TextRenderingHint.AntiAlias
'e.Graphics.DrawString(tb_print_title.Text, tb_print_title.Font,
' Brushes.Black, 20, 30)
' *****
' * Höhe der Schrift ermitteln anhand der Schriftart(Font)
' * mittels Mustertext (mit Ober- und Unterlängen)
' * und Höhe geringfügig erhöhen
' *****
Dim g As Graphics = race_grid.CreateGraphics
TextHöhe = g.MeasureString("Bg", race_grid.Font).Height + _
ZellPadding ' Mustertext zur Ermittlung der Schrifthöhe
With PrintDoc.DefaultPageSettings
'LRand = .Margins.Left ' Rand links
'RRand = .Margins.Right ' Rand rechts
ROben = 80 ' Rand oben
'RUnten = .Margins.Bottom ' Rand unten
PageWidth = .Bounds.Width '- (RRand + LRand) ' Druckbereich _
Breite
PageHeight = .Bounds.Height '- (ROben + RUnten) ' Druckbereich _
Höhe
'e.Graphics.DrawRectangle(Pens.Black, LRand, ROben, PageWidth,
' PageHeight) ' Rahmen um alles
End With
PosY = ROben
If HZentrieren = True Then ' Tabelle horizontal
' zentrieren
LRand = (LRand + (PageWidth / 2)) - (DGVDruckbreite / 2)
End If
PosX = LRand
' * Den höchsten ZeilenIndex des DataGridview ermitteln
' * in Abhängigkeit davon, ob ein Zeile am Ende steht
If race_grid.AllowUserToAddRows = True Then
dgv_MaxZeilenIndex = race_grid.Rows.Count - 2
Else
dgv_MaxZeilenIndex = race_grid.Rows.Count - 1
End If
dgv_MaxSpaltenIndex = race_grid.Columns.Count - 1
sf.Alignment = StringAlignment.Near
sf.LineAlignment = StringAlignment.Center
'Titel usw
e.Graphics.DrawString(tb_print_verein.Text, tb_print_verein.Font, _
Brushes.Black, 20, 10)
e.Graphics.DrawString(tb_print_title.Text, tb_print_title.Font, _
Brushes.Black, 20, 35)
e.Graphics.DrawString(tb_print_date.Text, tb_print_date.Font, _
Brushes.Black, 20, 49)
e.Graphics.DrawString("Ergebnisse der " & _
cb_print_class.SelectedItem.ToString & " ( " & _
tb_print_driver.Text & " Fahrer gewertet)", tb_print_driver.Font, _
Brushes.Black, 15, 65)
' ***** Spaltenköpfe drucken
DruckSpalte = 0
Do
ZellBox = New Rectangle(PosX, PosY, SpaltenBreiten( _
DruckSpalte), TextHöhe)
ZellInhalt = race_grid.Columns(DruckSpalte).HeaderText
e.Graphics.FillRectangle(New SolidBrush(HeaderColor), ZellBox)
If DruckeGitternetzlinien = True Then
e.Graphics.DrawRectangle(Pens.Black, ZellBox.X, ZellBox.Y, _
ZellBox.Width, ZellBox.Height)
End If
e.Graphics.DrawString(ZellInhalt, race_grid.Font, _
Brushes.Black, ZellBox, sf)
PosX += SpaltenBreiten(DruckSpalte)
DruckSpalte += 1
Loop Until DruckSpalte > dgv_MaxSpaltenIndex Rechtschreibfehler sind mein Copyright(C) |