「ページ設定」ダイアログボックスを表示する
「ページ設定」ダイアログを表示するコードを紹介します。
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を愛用