none
Ersuche um Hilfe bei Visual Basic 2008 Seitenränder (Druckränder) RRS feed

  • Frage

  • Möchte Seitränder (Druckränder) eines Formulares verändern. Habe folgenden Code, hat zwar keine Fehlermeldung aber auch keine Wirkung:

    Imports System.Drawing.Printing
    Imports System.IO
    Public Class Form1
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            With PrintDocument1.DefaultPageSettings.Margins
                .Left = CInt(1 / 0.0254)
                .Right = CInt(1 / 0.0254)
                .Top = CInt(1 / 0.0254)
                .Bottom = CInt(1.5 / 0.0254)
            End With
        End Sub
    
    
        Private Sub DruckenToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DruckenToolStripButton.Click
            If PrintDialog1.ShowDialog() = DialogResult.OK Then
                DruckenToolStripButton.Visible = False
                PrintForm1.PrinterSettings = PrintDialog1.PrinterSettings
                PrintForm1.Form = Me
                PrintForm1.PrintAction = Printing.PrintAction.PrintToPreview
                PrintForm1.Print()
                DruckenToolStripButton.Visible = True
            End If
        End Sub
    

    Habe nirgends Hilfe dazu gefunden (google, msdn). Vieleicht kann ja hier jemand helfen.

    gucki333

     

    Dienstag, 3. Januar 2012 17:58

Antworten

  • Hallo,

    was Du da rechnest kann nicht in einem Integer abgebildet werden, denn da passen nur Ganzzahlen rein.

    Die Ränder müssen in 1 / 100" (Zoll) angegeben werden, d. h. ein Zoll wäre 100.
    Wenn Du lieber in Millimetern rechnest kannst Du die PrinterUnitConvert Klasse bemühen,
    wo Du Einheiten in 10tel oder 100tel Millimeter umrechnen kannst, z. B.:

    ' Angaben in 10tel Millimeter
    Dim margins10telMM As New Margins(100, 150, 200, 200)
    ' für den Drucker umrechnen
    Dim printerMargins = PrinterUnitConvert.Convert(margins10telMM, PrinterUnit.TenthsOfAMillimeter, PrinterUnit.Display)
    
    

    Gruß Elmar

    Dienstag, 3. Januar 2012 19:10
    Beantworter

Alle Antworten

  • Hallo,

    was Du da rechnest kann nicht in einem Integer abgebildet werden, denn da passen nur Ganzzahlen rein.

    Die Ränder müssen in 1 / 100" (Zoll) angegeben werden, d. h. ein Zoll wäre 100.
    Wenn Du lieber in Millimetern rechnest kannst Du die PrinterUnitConvert Klasse bemühen,
    wo Du Einheiten in 10tel oder 100tel Millimeter umrechnen kannst, z. B.:

    ' Angaben in 10tel Millimeter
    Dim margins10telMM As New Margins(100, 150, 200, 200)
    ' für den Drucker umrechnen
    Dim printerMargins = PrinterUnitConvert.Convert(margins10telMM, PrinterUnit.TenthsOfAMillimeter, PrinterUnit.Display)
    
    

    Gruß Elmar

    Dienstag, 3. Januar 2012 19:10
    Beantworter
  • Vielen Dank! Hat funktioniert.

    gucki333

    Mittwoch, 4. Januar 2012 21:11