Viewerコントロールのツールバーをカスタマイズする方法は?
対象製品
ActiveReports for .NET 7.0J
詳細
Windowsフォーム用のViewerコントロールのツールバーはカスタマイズして、独自の処理を実装することが可能です。
例えば、[印刷]ボタンがクリックされた時の処理をカスタマイズする場合、以下のようなコードになります。(Viewerコントロールにレポートを設定するコードは省略しています。)
◆サンプルコード(VB.NET)
◆サンプルコード(C#)
Windowsフォーム用のViewerコントロールのカスタマイズ方法や、ツールバーの各アイテム(ボタンなど)のインデックス/名称については、製品ヘルプの以下のトピックをご覧ください。
PowerTools ActiveReports for .NET 7.0J
- ActiveReportsユーザーガイド
- 概念
- 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
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);
}
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コントロールのカスタマイズ
関連情報
- Viewerコントロールの[印刷]ボタンを押下したときに、印刷ダイアログを表示せず、直接印刷を行う方法は?
- Windowsフォームアプリでレポートを印刷する際、印刷ダイアログ上で押されたボタンを判断する方法は?
キーワード
HowTo 印刷・プレビュー