vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Re: Erweiterte RichTextBox (VB.NET) 
Autor: Manfred X
Datum: 25.06.15 17:14

Probier mal dieses Formular ....
Imports System.Drawing.Printing
Public Class frmPrintRich
 
    ' Variablen für Druckfunktion
    Private m_nFirstCharOnPage As Integer ' Variable für Druck
    Private iPage As Short
    Private iPages As Short
    Private initPrint As Boolean = False
 
    Dim richtextboxex1 As New RichTextBoxEx With {.Parent = Me, .Width = 300, _
      .Height = 280}
    Dim WithEvents btnPrint As New Button With {.Parent = Me, .Top = 300, .Text _
    = "Print"}
 
    Dim WithEvents printdocument1 As New printdocument
    Dim WithEvents printdialog1 As New PrintDialog
    Dim WithEvents printpreviewdialog1 As New PrintPreviewDialog
 
    Private Sub frmPrintRich_Load(sender As System.Object, e As _
      System.EventArgs) Handles MyBase.Load
 
        Me.Size = New Size(310, 350)
 
    End Sub
 
    Private Sub PrintDocument1_BeginPrint(ByVal sender As Object, ByVal e As _
      System.Drawing.Printing.PrintEventArgs) Handles printdocument1.BeginPrint
 
        ' Start at the beginning of the text
        m_nFirstCharOnPage = 0
        iPage = 0
    End Sub
 
    Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e _
      As System.Drawing.Printing.PrintPageEventArgs) Handles _
      printdocument1.PrintPage
 
        If initPrint = True Then iPages += CShort(1)
        iPage += CShort(1)
 
        ' Code für Kopfzeile (Seitenanzahl)
        Dim oPen6 As New Pen(Color.Black, 1.2)
        Dim oFont1 As New Font("Arial", 10, FontStyle.Bold)
 
        With e.MarginBounds
            e.Graphics.DrawLine(oPen6, .X, .Y - 15, e.PageBounds.Width - .X - _
            (e.PageBounds.Right - .Right), .Y - 15)
 
            If initPrint = True Then
                e.Graphics.DrawString("Seite: " & iPage & "/?", oFont1, _
                  Brushes.Black, .X, .Y - 35)
            Else
                e.Graphics.DrawString("Seite: " & iPage & "/" & iPages, oFont1, _
                  Brushes.Black, .X, .Y - 35)
            End If
        End With
 
        With richtextboxex1
            m_nFirstCharOnPage = .FormatRange(False, e, m_nFirstCharOnPage, _
              .TextLength)
 
            ' Prüfen ob noch Seiten gedruckt werden müssen
            e.HasMorePages = (m_nFirstCharOnPage < .TextLength)
        End With
    End Sub
 
    Private Sub PrintDocument1_EndPrint(ByVal sender As Object, ByVal e As _
      System.Drawing.Printing.PrintEventArgs) Handles printdocument1.EndPrint
 
 
        ' Variablen für Druck zurücksezen
        richtextboxex1.FormatRangeDone()
        initPrint = False
 
        ' In PrintPreviewDialog.Text die Anzahl Gesamtseiten ausgeben
        printpreviewdialog1.Text = "Druck-Vorschau (Anzahl Seiten: " & _
          iPages.ToString & ")"
    End Sub
 
    Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles btnPrint.Click
 
 
        With printdialog1
            If .ShowDialog() = Windows.Forms.DialogResult.OK Then
                ' Einstellungen von Dialog an PringDocument übergeben
                printdocument1.PrinterSettings = .PrinterSettings
                With printdocument1.DefaultPageSettings.Margins()
                    .Bottom = 70
                    .Top = 70
                    .Left = 50
                    .Right = 50
                End With
 
                ' Show Print Preview
                iPages = 0
                initPrint = True
                printpreviewdialog1.Document = printdocument1
                printpreviewdialog1.WindowState = FormWindowState.Maximized
                printpreviewdialog1.ShowDialog()
            End If
        End With
    End Sub
 
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Erweiterte RichTextBox (VB.NET)2.086joachimS25.06.15 16:27
Re: Erweiterte RichTextBox (VB.NET)1.739Manfred X25.06.15 17:14
Re: Erweiterte RichTextBox (VB.NET)1.410joachimS25.06.15 17:32
Re: Erweiterte RichTextBox (VB.NET)1.396Manfred X25.06.15 18:08
Re: Erweiterte RichTextBox (VB.NET)1.373joachimS25.06.15 18:53
Re: Erweiterte RichTextBox (VB.NET)1.419Manfred X25.06.15 18:59
Re: Erweiterte RichTextBox (VB.NET)1.388joachimS25.06.15 19:19
Re: Erweiterte RichTextBox (VB.NET)1.403Manfred X25.06.15 19:34
Re: Erweiterte RichTextBox (VB.NET)1.336joachimS25.06.15 21:04
Re: Erweiterte RichTextBox (VB.NET)1.352joachimS25.06.15 21:38
Re: Erweiterte RichTextBox (VB.NET)1.341Manfred X25.06.15 22:07
Re: Erweiterte RichTextBox (VB.NET)1.476joachimS25.06.15 22:36
Re: Erweiterte RichTextBox (VB.NET)1.419Manfred X25.06.15 22:51
Re: Erweiterte RichTextBox (VB.NET)1.335joachimS25.06.15 23:37
Re: Erweiterte RichTextBox (VB.NET)1.390Manfred X26.06.15 00:01
Re: Erweiterte RichTextBox (VB.NET)1.365joachimS26.06.15 06:55
Re: Erweiterte RichTextBox (VB.NET)1.438joachimS26.06.15 15:00

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