DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

用紙のサイズをコンボボックスに表示して、選択して印刷する

PrintDocumentクラスを使って印刷する時に、プリンタで印刷可能な用紙のサイズをコンボボックスに一覧表示して、選択された用紙サイズで印刷できるようにする方法を紹介します。

プリンタでサポートされている用紙サイズは、PrintDocument.PrinterSettingsプロパティで取得できるPrinterSettingsオブジェクトのPrinterSettings.PaperSizesプロパティで分かります。

具体例を示します。まず、フォームにPrintDocumentオブジェクト"PrintDocument1"とコンボボックス"ComboBox1"を配置します。そしてPrintDocument1がサポートしている用紙サイズをComboBox1に表示するコードは、次のようになります。

VB.NET
コードを隠すコードを選択
'ComboBox1の項目をクリアする
ComboBox1.Items.Clear()

'表示するプロパティをPaperNameとする
ComboBox1.DisplayMember = "PaperName"

'PaperSizeをComboBox1に追加していく
Dim ps As System.Drawing.Printing.PaperSize
For Each ps In PrintDocument1.PrinterSettings.PaperSizes
    ComboBox1.Items.Add(ps)
Next ps
C#
コードを隠すコードを選択
//ComboBox1の項目をクリアする
ComboBox1.Items.Clear();

//表示するプロパティをPaperNameとする
ComboBox1.DisplayMember = "PaperName";

//PaperSizeをComboBox1に追加していく
foreach (System.Drawing.Printing.PaperSize ps
                in PrintDocument1.PrinterSettings.PaperSizes)
{
    ComboBox1.Items.Add(ps);
}

上の例ではComboBox.ItemsプロパティにPaperSizeオブジェクトを追加していますが、ComboBox.DisplayMemberプロパティを"PaperName"とすることにより、ComboBox1にはPaperSize.PaperNameプロパティの値が表示されるようになります。

次にComboBoxで選択された用紙サイズで印刷するコードを示します。ComboBox.SelectedItemプロパティで取得したPaperSizeオブジェクトをDefaultPageSettings.PaperSizeプロパティに入れているだけです。

なおここでは、PrintDocument1のPrintPageイベントハンドラは省略しています。PrintPageイベントハンドラがないと、印刷はできません。印刷する方法については、「印刷する」をご覧ください。

VB.NET
コードを隠すコードを選択
'用紙サイズをComboBox1で選択されているサイズにする
PrintDocument1.DefaultPageSettings.PaperSize = _
    CType(ComboBox1.SelectedItem, System.Drawing.Printing.PaperSize)

'印刷する
PrintDocument1.Print()
C#
コードを隠すコードを選択
//用紙サイズをComboBox1で選択されているサイズにする
PrintDocument1.DefaultPageSettings.PaperSize =
    (System.Drawing.Printing.PaperSize) ComboBox1.SelectedItem;

//印刷する
PrintDocument1.Print();

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • イベントハンドラの意味が分からない、C#のコードをそのまま書いても動かないという方は、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。