Viewerコントロールのツールバーをカスタマイズする方法は?

文書番号 : 34697     文書種別 : 使用方法     登録日 : 2012/12/10     最終更新日 : 2013/03/07
文書を印刷する
対象製品
ActiveReports for .NET 7.0J
詳細
Windowsフォーム用のViewerコントロールのツールバーはカスタマイズして、独自の処理を実装することが可能です。

例えば、[印刷]ボタンがクリックされた時の処理をカスタマイズする場合、以下のようなコードになります。(Viewerコントロールにレポートを設定するコードは省略しています。)

◆サンプルコード(VB.NET)
Private tsbPrint As New System.Windows.Forms.ToolStripButton

Private Sub Form1_Load(...) Handles MyBase.Load
  Dim toolStrip As System.Windows.Forms.ToolStrip
  Dim orgBtn As System.Windows.Forms.ToolStripButton = Nothing
  Dim orgItem As System.Windows.Forms.ToolStripItem

  ' イメージ取得のために標準の印刷ボタンを取得します。
  toolStrip = Me.Viewer1.Toolbar.ToolStrip
  orgItem = toolStrip.Items(2)
  If TypeOf orgItem Is System.Windows.Forms.ToolStripButton Then
    orgBtn = CType(orgItem, ToolStripButton)
  End If

  ' 標準の印刷ボタンを削除します。
  toolStrip.Items.RemoveAt(2)

  ' 標準の印刷ボタンの代わりに、カスタムボタンを追加します。
  If orgBtn Is Nothing Then
    tsbPrint.Text = "印刷"
    tsbPrint.ToolTipText = "印刷"
  Else
    tsbPrint.Text = orgBtn.Text
    tsbPrint.ToolTipText = orgBtn.ToolTipText
    tsbPrint.Image = orgBtn.Image
  End If
  tsbPrint.Enabled = False

  ' カスタムボタンのイベントハンドラを設定します。
  AddHandler tsbPrint.Click, AddressOf Me.PrintButtonClick

  ' カスタムボタンをツールバーに追加します。
  toolStrip.Items.Insert(2, tsbPrint)

End Sub

' Viewerにレポートがロードされた時に呼び出されるイベント。
Private Sub Viewer1_LoadCompleted(...) Handles Viewer1.LoadCompleted
  ' カスタムボタンを有効にします。
  tsbPrint.Enabled = True
End Sub

' カスタムボタンクリック時に呼び出されるイベント。
Private Sub PrintButtonClick(ByVal sender As Object, ByVal e As System.EventArgs)
  ' 印刷処理を行います。
  Me.Viewer1.Print(True, True, False)
End Sub

◆サンプルコード(C#)
private ToolStripButton tsbPrint = new System.Windows.Forms.ToolStripButton();

private void Form1_Load(object sender, EventArgs e)
{
  System.Windows.Forms.ToolStrip toolStrip;
  System.Windows.Forms.ToolStripItem orgItem;
  System.Windows.Forms.ToolStripButton orgBtn = null;

  // イメージ取得のために標準の印刷ボタンを取得します。
  toolStrip = this.viewer1.Toolbar.ToolStrip;
  orgItem = toolStrip.Items[2];
  if (orgItem is System.Windows.Forms.ToolStripButton)
  {
    orgBtn = (System.Windows.Forms.ToolStripButton)orgItem;
  }

  // 標準の印刷ボタンを削除します。
  toolStrip.Items.RemoveAt(2);

  // 標準の印刷ボタンの代わりに、カスタムボタンを追加します。
  if (orgBtn == null)
  {
    tsbPrint.Text = "印刷";
    tsbPrint.ToolTipText = "印刷";
  }
  else
  {
    tsbPrint.Text = orgBtn.Text;
    tsbPrint.ToolTipText = orgBtn.ToolTipText;
    tsbPrint.Image = orgBtn.Image;
  }
  tsbPrint.Enabled = false;

  // カスタムボタンのイベントハンドラを設定します。
  tsbPrint.Click += this.PrintButtonClick;

  // カスタムボタンをツールバーに追加します。
  toolStrip.Items.Insert(2, tsbPrint);
}

// Viewerにレポートがロードされた時に呼び出されるイベント。
private void viewer1_LoadCompleted(object sender, EventArgs e)
{
  // カスタムボタンを有効にします。
  tsbPrint.Enabled = true;
}

// カスタムボタンクリック時に呼び出されるイベント。
private void PrintButtonClick(System.Object sender, System.EventArgs e)
{
  // 印刷処理を行います。
  this.viewer1.Print(true, true, false);
}


Windowsフォーム用のViewerコントロールのカスタマイズ方法や、ツールバーの各アイテム(ボタンなど)のインデックス/名称については、製品ヘルプの以下のトピックをご覧ください。

PowerTools ActiveReports for .NET 7.0J
 - ActiveReportsユーザーガイド
  - 概念
   - Windowsフォーム用ビューワのカスタマイズ
  - 基本操作
   - カスタマイズ
    - Viewerコントロールのカスタマイズ
関連情報
キーワード
HowTo 印刷・プレビュー