vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: DataGrid - leere Zellen drucken 
Autor: BuchEy
Datum: 03.08.11 11:11

<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)

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DataGrid - leere Zellen drucken3.480BuchEy03.08.11 11:10
Re: DataGrid - leere Zellen drucken2.472BuchEy03.08.11 11:11
Re: DataGrid - leere Zellen drucken2.531BuchEy03.08.11 11:11
Re: DataGrid - leere Zellen drucken2.465Manfred X03.08.11 12:11

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel