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

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

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

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

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) 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)

  ' カスタムボタンの外観を標準の印刷ボタンに合わせます。(デフォルトは無効状態)
  tsbPrint.Text = orgBtn.Text
  tsbPrint.ToolTipText = orgBtn.ToolTipText
  tsbPrint.Image = orgBtn.Image
  tsbPrint.Enabled = False

  ' イベントハンドラを設定します。(Viewer.LoadCompletedはデザイナからも設定可)
  AddHandler tsbPrint.Click, AddressOf Me.PrintButtonClick
  AddHandler Viewer1.LoadCompleted, AddressOf Me.Viewer1_LoadCompleted

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

End Sub

' Viewerにレポートがロードされた時に呼び出されるイベント。
Private Sub Viewer1_LoadCompleted(sender As Object, e As EventArgs)
  ' カスタムボタンを有効にします。
  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);

  // カスタムボタンの外観を標準の印刷ボタンに合わせます。(デフォルトは無効状態)
  tsbPrint.Text = orgBtn.Text;
  tsbPrint.ToolTipText = orgBtn.ToolTipText;
  tsbPrint.Image = orgBtn.Image;
  tsbPrint.Enabled = false;

  // イベントハンドラを設定します。(viewer.LoadCompletedはデザイナからも設定可)
  tsbPrint.Click += this.PrintButtonClick;
  viewer1.LoadCompleted += this.viewer1_LoadCompleted;

  // カスタムボタンをツールバーに追加します。
  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コントロールのカスタマイズ方法や、ツールバーの各アイテム(ボタンなど)のインデックス/名称については、製品ヘルプの以下のトピックをご覧ください。

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