作成日: 2025/01/17 最終更新日: 2025/01/17
文書種別
使用方法
詳細
Windows 11では新しい形式の印刷ダイアログが採用され、FlexViewerのリボンの「印刷」ボタンをクリックすると、このダイアログが表示されます。
何らかの理由で以前の印刷ダイアログを使用したい場合は、ビューワのリボンにカスタムボタンを追加し、そのクリック時に標準のPrintDialogクラスを使用して従来の印刷ダイアログを表示させます。
なお、印刷するためにはFlexReportのPrintメソッドを用いることができます。
以下に、簡単な設定例を記載します。
既存の「印刷」ボタンをカスタムボタンに置き換えて、そのクリックイベントにてPrintDialogのShowDialogメソッドで印刷ダイアログを表示しています。

何らかの理由で以前の印刷ダイアログを使用したい場合は、ビューワのリボンにカスタムボタンを追加し、そのクリック時に標準のPrintDialogクラスを使用して従来の印刷ダイアログを表示させます。
なお、印刷するためにはFlexReportのPrintメソッドを用いることができます。
以下に、簡単な設定例を記載します。
既存の「印刷」ボタンをカスタムボタンに置き換えて、そのクリックイベントにてPrintDialogのShowDialogメソッドで印刷ダイアログを表示しています。
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
C1FlexReport1.Load("Sample.flxr", "New Report")
Dim oldItem = TryCast(C1FlexViewer1.RibbonElements.Print.RibbonItem, RibbonButton)
C1FlexViewer1.RibbonElements.Print.Visible = False
C1FlexViewer1.DocumentSource = C1FlexReport1
Dim CustomPrintButton = New RibbonButton() With {
.Name = oldItem.Name,
.Text = oldItem.Text,
.LargeImage = oldItem.LargeImage,
.SmallImage = oldItem.SmallImage
}
AddHandler CustomPrintButton.Click, AddressOf CustomPrintButton_Click
Dim tools = C1FlexViewer1.RibbonGroups.Tools.RibbonGroup
C1FlexViewer1.Ribbon.Tabs(0).Groups(4).Items.Remove(oldItem)
C1FlexViewer1.Ribbon.Tabs(0).Groups(4).Items.Insert(0, customPrintButton)
C1FlexViewer1.Ribbon.TopToolBar.Items.RemoveAt(12)
End Sub
Private Sub CustomPrintButton_Click(sender As Object, e As EventArgs)
Dim Dialog1 = New PrintDialog()
If Dialog1.ShowDialog() = DialogResult.OK Then
C1FlexReport1.Print(Dialog1.PrinterSettings)
End If
End Sub
End Class
◎サンプルコード(C#)
using C1.Win.C1Ribbon;
using C1.Win.FlexReport;
using C1.Win.FlexViewer;
using System;
using System.Windows.Forms;
namespace FlexReport_PrintDialog
{
public partial class Form1 : Form
{
C1FlexReport c1FlexReport1;
public Form1()
{
InitializeComponent();
c1FlexReport1.Load("Sample.flxr", "New Report");
var oldItem = c1FlexViewer1.RibbonElements.Print.RibbonItem as RibbonButton;
c1FlexViewer1.RibbonElements.Print.Visible = false;
c1FlexViewer1.DocumentSource = c1FlexReport1;
var customPrintButton = new RibbonButton()
{
Name = oldItem.Name,
Text = oldItem.Text,
LargeImage = oldItem.LargeImage,
SmallImage = oldItem.SmallImage
};
customPrintButton.Click += CustomPrintButton_Click;
var tools = c1FlexViewer1.RibbonGroups.Tools.RibbonGroup;
c1FlexViewer1.Ribbon.Tabs[0].Groups[4].Items.Remove(oldItem);
c1FlexViewer1.Ribbon.Tabs[0].Groups[4].Items.Insert(0, customPrintButton);
c1FlexViewer1.Ribbon.TopToolBar.Items.RemoveAt(12);
}
private void CustomPrintButton_Click(object sender, EventArgs e)
{
using (var dialog = new PrintDialog())
if (dialog.ShowDialog() == DialogResult.OK)
c1FlexReport1.Print(dialog.PrinterSettings);
}
}
}