HIRO's.NET

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

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

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

HIRO's.NET RSSHIRO's.NET RSS


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

HOME > C# 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 void Form1_Load(object sender, System.EventArgs e)
{
    //ドキュメントをページセットアップダイアログにセット
    pageSetupDialog1.Document = printDocument1;
}


private void button1_Click(object sender, System.EventArgs e)
{
    //ページの設定を行う
    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 )
    {
            
    }
}

//ページ設定用単位変換を行う 
//引数の単位はインチ
private int InchConvUnit(double inch )
{
    return (int)(inch * 100 * 2.54);
}

//ページ設定用単位変換を行う 
//引数の単位はmm
private int mmConvUnit(double mm)
{
    return (int)(mm * 10);
}