「ページ設定」ダイアログボックスを表示する

「ページ設定」ダイアログを表示するコードを紹介します。

UI

下図のUIを準備します。PageSetupDialog, Button, TextBoxを配置します。TextBoxはMultilineプロパティをTrueにします。


"PageSetupDialog"は[ツールボックス]の[印刷]カテゴリ内にあります。


コード

以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Printing;

namespace PageSetup
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      PrintDocument pd = new PrintDocument();

      pageSetupDialog1.Document = pd;
      DialogResult dr = pageSetupDialog1.ShowDialog();

      if (dr == System.Windows.Forms.DialogResult.OK) {
        textBox1.Text += string.Format("用紙サイズ幅:{0:d}\r\n",
          pd.DefaultPageSettings.PaperSize.Width);
        textBox1.Text += string.Format("用紙サイズ高さ:{0:d}\r\n",
          pd.DefaultPageSettings.PaperSize.Height);
        textBox1.Text += string.Format("横向き:{0:b}\r\n",
          pd.DefaultPageSettings.Landscape);

        textBox1.Text += string.Format("ハードマージンX:{0:f2}\r\n",
          pd.DefaultPageSettings.HardMarginX);
        textBox1.Text += string.Format("ハードマージンY:{0:f2}\r\n",
          pd.DefaultPageSettings.HardMarginY);
        textBox1.Text += string.Format("左マージン:{0:f2}\r\n",
          pd.DefaultPageSettings.Margins.Left);
        textBox1.Text += string.Format("右マージン:{0:f2}\r\n",
          pd.DefaultPageSettings.Margins.Right);
        textBox1.Text += string.Format("上マージン:{0:f2}\r\n",
          pd.DefaultPageSettings.Margins.Top);
        textBox1.Text += string.Format("下マージン:{0:f2}\r\n",
          pd.DefaultPageSettings.Margins.Bottom);
      }
    }
  }
}

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


"button1"を押します。下図の[ページ設定]ダイアログボックスが表示されます。


[ページ設定]ダイアログボックスで[OK]ボタンを押すとダイアログボックスが閉じます。ダイアログで設定した値がテキストボックスに表示されます。


再度[ページ設定]ダイアログを開きます。先ほどの設定から変更します。(用紙サイズをA3に、印刷の向きを横にし、マージンも変えました)


ダイアログボックスの[OK]ボタンを押します。テキストボックスには用紙サイズがA4縦のときとは違った内容が表示されます。


著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2012-05-28
iPentec all rights reserverd.