Originariamente inviato da MItaly
Per poterti dare qualunque risposta bisogna vedere il codice con cui effettui questa operazione in VB6 e in VB.NET (e in ogni caso non credo che questo c'entri qualcosa con il fatto che VB6 sia superato o meno).
Ciao MItaly,
ti ringrazio per la risposta.
Dunque: il problema da me esposto si presenta soltanto nel mio caso specifico: la stampante che io utilizzo normalmente è una stampante fisicamente collegata a un notebook che è in un'altra stanza. Io sono conneso in rete wireless alla stampante.
Comunque con VB6 il problema non si presenta mai .
Il codice che utillizzo in VB.net è questo:
codice:
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.TextBox1.Text = Math.Round(Me.PrintDocument1.DefaultPageSettings.PaperSize.Width * 2.54 / 100, 2)
Me.TextBox2.Text = Math.Round(Me.PrintDocument1.DefaultPageSettings.PaperSize.Height * 2.54 / 100, 2)
Me.TextBox3.Text = Math.Round(Me.PrintDocument1.DefaultPageSettings.PrintableArea.Width * 2.54 / 100, 2)
Me.TextBox4.Text = Math.Round(Me.PrintDocument1.DefaultPageSettings.PrintableArea.Height * 2.54 / 100, 2)
Me.TextBox5.Text = Me.PrintDocument1.DefaultPageSettings.PrinterResolution.Y
Me.Label1.Text = Me.PrintDocument1.PrinterSettings.PrinterName
End Sub
End Class
Il codice che utilizzo in VB6 è:
codice:
Private Sub Form_Load()
Label1.Caption = Printer.DeviceName
Printer.ScaleMode = vbMillimeters
Me.txtResolution = Round(Printer.ScaleX(Printer.Width, vbTwips, vbPixels) / _
Printer.ScaleX(Printer.Width, vbTwips, vbInches))
Me.txtForWidth = Round(Printer.ScaleX(Printer.Width, vbTwips, vbMillimeters), 2)
Me.txtForHeight = Round(Printer.ScaleY(Printer.Height, vbTwips, vbMillimeters), 2)
Me.txtArStWidth = Round(Printer.ScaleWidth, 2)
Me.txtArStHeight = Round(Printer.ScaleHeight, 2)
Me.txtMargLeft = Round(Printer.ScaleX(Printer.CurrentX, vbTwips, vbMillimeters), 2)
Me.txtMargTop = Round((Printer.ScaleY(Printer.Height, vbTwips, vbMillimeters) - Printer.ScaleHeight), 2) / 2
End Sub
e non mi da mai problemi, ripeto. Quindi in questo caso non mi sembrebbe tanto superato VB6.