HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


VB.NET 2003の開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > VB.NET 2003 Tips > コントロール > PageSetupDialog Tips メニュー

04.余白を設定する

UPDATE:2006/06/28 

<< 前のTips  次の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