VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
PageSetupDialogの[余白]を設定するには、PageSettings.Marginsプロパティを使用します。単位は1/100インチで指定することになっていますが、100(1インチを指定)と入力しても10と表示されてしまいます。(本来であれば25.4mmとなるはず)。これは既知のバグのようです。対策として、単位変換をして余白にセットするようにしてみました。
showamさんからいただいた情報ですが、.NET Framework2.0では PageSetupDialog.EnableMetricプロパティをtrueにすることでこの問題を回避できるそうです。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'ドキュメントをページセットアップダイアログにセット PageSetupDialog1.Document = PrintDocument1 End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '(バグを回避するために単位変換を行う) PageSetupDialog1.PageSettings.Margins.Left = InchConvUnit(1) '1インチを指定 PageSetupDialog1.PageSettings.Margins.Right = InchConvUnit(2) '2インチを指定 PageSetupDialog1.PageSettings.Margins.Top = mmConvUnit(10) '10mmを指定 PageSetupDialog1.PageSettings.Margins.Bottom = mmConvUnit(15) '15mmを指定 'ダイアログを表示する If PageSetupDialog1.ShowDialog = DialogResult.OK Then End If End Sub 'ページ設定用単位変換を行う '引数の単位はインチ Private Function InchConvUnit(ByVal inch As Double) As Integer Dim intRet As Integer Return CInt(inch * 100 * 2.54) End Function 'ページ設定用単位変換を行う '引数の単位はmm Private Function mmConvUnit(ByVal mm As Double) As Integer Dim intRet As Integer Return CInt(mm * 10) End Function