NEWBIE: Printer Setup Dialog Box problem (with code)

  • Thread starter Thread starter Antony
  • Start date Start date
A

Antony

Hi, could someone advise me on what I am doing wrong here. All I have
is a Form with a Button on it. When I press the button I show a print
setup dialog box. When I view the print setup dialog for the first
time, it says margins left, right, top, bottom 10mm. I press ok. Then
I press my button on the form again, but this time my margins are
3.9mm. I do it again and get 1.5mm.....

Why? How do I stop this?

Here is my code, just create a new project with a form and paste
verbatim into the form code. I am using "Microsoft Development
Environment 2003, version 7.1.3088". I am using "Microsoft .NET
Framework 1.1, version 1.1.4322".
Thank you (once) again.
Tony




Public Class Form1
Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeComponent()

'Add any initialization after the InitializeComponent() call

End Sub

'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As
Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Required by the Windows Form Designer
Private components As System.ComponentModel.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.
Friend WithEvents PrintDocument1 As
System.Drawing.Printing.PrintDocument
Friend WithEvents PageSetupDialog1 As
System.Windows.Forms.PageSetupDialog
Friend WithEvents Button1 As System.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
Me.PrintDocument1 = New System.Drawing.Printing.PrintDocument
Me.PageSetupDialog1 = New System.Windows.Forms.PageSetupDialog
Me.Button1 = New System.Windows.Forms.Button
Me.SuspendLayout()
'
'PageSetupDialog1
'
Me.PageSetupDialog1.Document = Me.PrintDocument1
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(72, 72)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(96, 48)
Me.Button1.TabIndex = 0
Me.Button1.Text = "Button1"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(292, 273)
Me.Controls.Add(Me.Button1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)

End Sub

#End Region

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
PageSetupDialog1.ShowDialog()
End Sub


End Class
 
Hello,

Antony said:
Hi, could someone advise me on what I am doing wrong here. All I have
is a Form with a Button on it. When I press the button I show a print
setup dialog box. When I view the print setup dialog for the first
time, it says margins left, right, top, bottom 10mm. I press ok. Then
I press my button on the form again, but this time my margins are
3.9mm. I do it again and get 1.5mm.....

This was a bug in .NET 1.0, I think it's fixed in .NET 1.1. Nervertheless,
the sample below will show you how to fix it:

http://www.mvps.org/dotnet/dotnet/samples/printing/
-> "PrintFramework"
 
Thank you again Herfried.

Oddly however I am using VS 2003, with .Net 1.1 (and even within the
IDE I go to the main menu Projects/Build it says "Supported Runtimes.
By default, app.config supports running on .NET Framework v1.1"). When
I go to the help main menu, then "Check for Updates", I get the
message "No new Visual Studio Service Releases are available". So I
guess Microsoft haven't fixed it yet. Thank you for posting your
work-around. I have downloaded it and will use the bit that stops the
margin values being corrupted until Microsoft fix the bug.
Kind Regards
Tony
 
Back
Top