Francesco Geri

Il blog di Francesco Geri
posts - 56, comments - 57, trackbacks - 2

My Links

News



Anch'io metto nel mio blog cose che scrivo così, tanto per fare, tanto per condividere miei appunti, senza prendermi la briga di garantirne l'infallibilità, né l'assoluta correttezza, senza pretese e con grande umilté.

Quanti mi hanno visto dal 25/10/2007:
...dettagli

Che libro leggo in questo periodo?*

L'Affittacamere - Valerio Varesi
* L'immagine è presa da IBS (http://www.ibs.it), spero non me ne vogliano...

Archives

Post Categories

Altre

Blogs

Componente PageSetupDialog

 

Il componente PageSetupDialog ha un baco (noto) per cui se (nel computer) le impostazioni di misura sono quelle metriche i valori dei margini impostati vengono convertiti in pollici, e quindi diminuiti.

In pratica, se si esegue la ShowDialog del componente l'utente può imposta il valore 10 per il margine sinistro, preme ok e voi dalla vostra applicazione leggete che ha impostato 3,9!


Il problema è descritto nell'articolo: http://support.microsoft.com/?id=814355

Per ovviare a questo inconveniente possiamo modificare la chiamata alla ShowDialog del componente nel modo seguente:

 

    1 Imports System.Drawing.Printing

    2 

    3 Public Class Form1

    4 

    5   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _

    6   Handles Button1.Click

    7     ' Inizializza la proprietà PageSettings

    8     Me.PageSetupDialog1.PageSettings = New PageSettings

    9     ' Apre la finestra delle impostazioni della pagina

   10     Me.PageSetupDialog1.ShowDialog(Me)

   11     '============================================================

   12     ' Commentare il seguente IF per vedere la differenza

   13     '============================================================

   14     ' Esegue la coversione se il sistema corrente è metrico

   15     If System.Globalization.RegionInfo.CurrentRegion.IsMetric Then

   16       Me.PageSetupDialog1.PageSettings.Margins = _

   17       PrinterUnitConvert.Convert(Me.PageSetupDialog1.PageSettings.Margins, _

   18       PrinterUnit.ThousandthsOfAnInch, PrinterUnit.HundredthsOfAMillimeter)

   19     End If

   20     ' Riapre la finestra delle impostazioni

   21     Me.PageSetupDialog1.ShowDialog(Me)

   22   End Sub

   23 

   24 End Class

 

Print | posted on giovedì 21 febbraio 2008 23.28 | Filed Under [ Tips VS2005 .Net ]

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 6 and 7 and type the answer here:

Powered by: