VB.Net Tutorial/GUI/Print Dialog

Материал из VB Эксперт
Перейти к: навигация, поиск

Display Print dialog and get settings

<source lang="vbnet">Imports System.IO Imports System.Windows.Forms public class PageSetupDialogSettings

  public Shared Sub Main
       Dim PrintDB As New PrintDialog()
       PrintDB.Document = New System.Drawing.Printing.PrintDocument()
       If (PrintDB.ShowDialog() = DialogResult.OK) Then
           Console.WriteLine("Printer: " & PrintDB.PrinterSettings.PrinterName)
           Console.WriteLine("From Page: " & PrintDB.PrinterSettings.FromPage)
           Console.WriteLine("To Page: " & PrintDB.PrinterSettings.ToPage)
           Console.WriteLine("Print Range: " & PrintDB.PrinterSettings.PrintRange)
           Console.WriteLine("Copies: " & PrintDB.PrinterSettings.Copies)
           If (PrintDB.PrinterSettings.LandscapeAngle = 90) Then
               Console.WriteLine("Landscape")
           Else
               Console.WriteLine("Portrait")
           End If
           Console.WriteLine("Allow Print to File: " & PrintDB.AllowPrintToFile)
           Console.WriteLine("AllowSelection: " & PrintDB.AllowSelection)
           Console.WriteLine("Allow Some Pages: " & PrintDB.AllowSomePages)
           Console.WriteLine("Print to File: " & PrintDB.PrintToFile)
           Console.WriteLine("Show Network: " & PrintDB.ShowNetwork)
       End If
  End Sub

End class</source>

Has more pages

<source lang="vbnet">Imports System.Windows.Forms Imports System.Drawing public class PrintDialogHasMorePage

  public Shared Sub Main
       Application.Run(New Form1)
  End Sub

End class

Public Class Form1

   Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click
       If pdlgRectangle.ShowDialog() = Windows.Forms.DialogResult.OK Then
           pdocRectangle.Print()
       End If
   End Sub
   Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles pdocRectangle.PrintPage
       e.Graphics.DrawRectangle(Pens.Black, 100, 100, 600, 300)
       e.HasMorePages = False
   End Sub

End Class <Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _ Partial Public Class Form1

   Inherits System.Windows.Forms.Form
   "Form overrides dispose to clean up the component list.
   <System.Diagnostics.DebuggerNonUserCode()> _
   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing AndAlso components IsNot Nothing Then
           components.Dispose()
       End If
       MyBase.Dispose(disposing)
   End Sub
   "Required by the Windows Form Designer
   Private components As System.ruponentModel.IContainer
   "NOTE: The following procedure is required by the Windows Form Designer
   "It can be modified using the Windows Form Designer.  
   "Do not modify it using the code editor.
   <System.Diagnostics.DebuggerStepThrough()> _
   Private Sub InitializeComponent()
       Me.pdlgRectangle = New System.Windows.Forms.PrintDialog
       Me.pdocRectangle = New System.Drawing.Printing.PrintDocument
       Me.btnPrint = New System.Windows.Forms.Button
       Me.SuspendLayout()
       "
       "pdlgRectangle
       "
       Me.pdlgRectangle.AllowSomePages = True
       Me.pdlgRectangle.Document = Me.pdocRectangle
       "
       "btnPrint
       "
       Me.btnPrint.Location = New System.Drawing.Point(112, 40)
       Me.btnPrint.Name = "btnPrint"
       Me.btnPrint.Size = New System.Drawing.Size(64, 24)
       Me.btnPrint.TabIndex = 1
       Me.btnPrint.Text = "Print"
       "
       "Form1
       "
       Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
       Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
       Me.ClientSize = New System.Drawing.Size(292, 134)
       Me.Controls.Add(Me.btnPrint)
       Me.Name = "Form1"
       Me.Text = "UsePringDialog"
       Me.ResumeLayout(False)
   End Sub
   Friend WithEvents pdlgRectangle As System.Windows.Forms.PrintDialog
   Friend WithEvents pdocRectangle As System.Drawing.Printing.PrintDocument
   Friend WithEvents btnPrint As System.Windows.Forms.Button

End Class</source>

PrintSettings for a Print dialog

<source lang="vbnet">Imports System.Windows.Forms Imports System.Drawing.Text Imports System.Drawing Imports System.Drawing.Drawing2D public class PrintDialogPrinterSetting

  public Shared Sub Main
       Application.Run(New Form1)
  End Sub

End class Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim PrintDialog1 As New PrintDialog()
       Dim PrintDocument1 As System.Drawing.Printing.PrintDocument
       PrintDialog1.Document = PrintDocument1
       PrintDialog1.PrinterSettings.Copies = 5
       PrintDialog1.PrinterSettings.FromPage = 1
       PrintDialog1.PrinterSettings.ToPage = 5
       If PrintDialog1.ShowDialog = DialogResult.OK Then
           PrintDocument1.Print()
       End If
   End Sub

End Class <Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _ Partial Class Form1

   Inherits System.Windows.Forms.Form
   "Form overrides dispose to clean up the component list.
   <System.Diagnostics.DebuggerNonUserCode()> _
   Protected Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing AndAlso components IsNot Nothing Then
           components.Dispose()
       End If
       MyBase.Dispose(disposing)
   End Sub
   "Required by the Windows Form Designer
   Private components As System.ruponentModel.IContainer
   "NOTE: The following procedure is required by the Windows Form Designer
   "It can be modified using the Windows Form Designer.  
   "Do not modify it using the code editor.
   <System.Diagnostics.DebuggerStepThrough()> _
   Private Sub InitializeComponent()
       Me.PrintDialog1 = New System.Windows.Forms.PrintDialog
       Me.Button1 = New System.Windows.Forms.Button
       Me.SuspendLayout()
       "
       "PrintDialog1
       "
       Me.PrintDialog1.UseEXDialog = True
       "
       "Button1
       "
       Me.Button1.Location = New System.Drawing.Point(136, 145)
       Me.Button1.Name = "Button1"
       Me.Button1.Size = New System.Drawing.Size(75, 23)
       Me.Button1.TabIndex = 0
       Me.Button1.Text = "Button1"
       Me.Button1.UseVisualStyleBackColor = True
       "
       "Form1
       "
       Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
       Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
       Me.ClientSize = New System.Drawing.Size(364, 200)
       Me.Controls.Add(Me.Button1)
       Me.Name = "Form1"
       Me.Text = "Form1"
       Me.ResumeLayout(False)
   End Sub
   Friend WithEvents PrintDialog1 As System.Windows.Forms.PrintDialog
   Friend WithEvents Button1 As System.Windows.Forms.Button

End Class</source>

Print three pages out

<source lang="vbnet">Imports System.Windows.Forms Imports System.Drawing.Printing Imports System.Drawing

public class PrintPagesOut

  public Shared Sub Main
       Application.Run(New Form1)
  End Sub

End class Public Class Form1

   Private currentPageNumber As Integer = 1
   Private Sub pdocShapes_PrintPage(ByVal sender As System.Object, _
    ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles pdocShapes.PrintPage
       Select Case currentPageNumber
           Case 1  
               e.Graphics.DrawRectangle(Pens.Green, e.MarginBounds())
               e.HasMorePages = True
               currentPageNumber += 1
           Case 2  
               e.Graphics.DrawRectangle(Pens.Green, e.MarginBounds())
               e.HasMorePages = True
               currentPageNumber += 1
           Case 3  
               e.Graphics.DrawEllipse(Pens.Blue, e.MarginBounds())
               e.HasMorePages = False
               currentPageNumber = 1
       End Select
   End Sub

End Class <Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _ Partial Public Class Form1

   Inherits System.Windows.Forms.Form
   "Form overrides dispose to clean up the component list.
   <System.Diagnostics.DebuggerNonUserCode()> _
   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing AndAlso components IsNot Nothing Then
           components.Dispose()
       End If
       MyBase.Dispose(disposing)
   End Sub
   "Required by the Windows Form Designer
   Private components As System.ruponentModel.IContainer
   "NOTE: The following procedure is required by the Windows Form Designer
   "It can be modified using the Windows Form Designer.  
   "Do not modify it using the code editor.
   <System.Diagnostics.DebuggerStepThrough()> _
   Private Sub InitializeComponent()
       Me.pdocShapes = New System.Drawing.Printing.PrintDocument
       Me.ppvShapes = New System.Windows.Forms.PrintPreviewControl
       Me.SuspendLayout()
       "
       "ppvShapes
       "
       Me.ppvShapes.AutoZoom = False
       Me.ppvShapes.Columns = 3
       Me.ppvShapes.Dock = System.Windows.Forms.DockStyle.Fill
       Me.ppvShapes.Document = Me.pdocShapes
       Me.ppvShapes.Location = New System.Drawing.Point(0, 0)
       Me.ppvShapes.Name = "ppvShapes"
       Me.ppvShapes.Size = New System.Drawing.Size(544, 228)
       Me.ppvShapes.TabIndex = 1
       Me.ppvShapes.Zoom = 0.18509803921568627
       "
       "Form1
       "
       Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
       Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
       Me.ClientSize = New System.Drawing.Size(544, 228)
       Me.Controls.Add(Me.ppvShapes)
       Me.Name = "Form1"
       Me.Text = "UsePrintPreviewControl"
       Me.ResumeLayout(False)
   End Sub
   Friend WithEvents pdocShapes As System.Drawing.Printing.PrintDocument
   Friend WithEvents ppvShapes As System.Windows.Forms.PrintPreviewControl

End Class</source>