如何在打印预览对话框中添加打印对话框?

yong.k

我的老板要我创建具有打印功能的窗口窗体,但他要打印datagridview预览后的窗体

因此,现在我解决了这个问题,当单击“打印”按钮时,我无法打印多张纸或选择打印机或进行任何更改printpreviewdialog。单击该按钮时,它将直接打印纸张。所以我希望加入printpreviewdialogprintdialog

为什么printpreviewdialogprintdialog只能在不同的按钮中使用?当需要单击一个按钮进行预览,然后单击另一个按钮以打印多份并更改打印机时,缺乏可用性。

有人可以帮助我吗?

打印对话框

DialogResult result = printDialog1.ShowDialog();
            // If the result is OK then print the document.
            if (result == DialogResult.OK)
            {
                position = 0;
                pageno = 1;
                printDocument2.DefaultPageSettings.Margins = new Margins(20, 20, 20, 20);
                printDocument2.OriginAtMargins = true;
                printPreviewDialog1.Document = printDocument2;
                printPreviewDialog1.ShowDialog();
            }   

打印预览对话框

printDocument3.DefaultPageSettings.Margins = new Margins(20, 20, 20, 20);
            printDocument3.OriginAtMargins = true;
            //((ToolStripButton)((ToolStrip)printPreviewDialog1.Controls[1]).Items[0]).Enabled = false;
            printPreviewDialog1.Document = printDocument3;
            printPreviewDialog1.ShowDialog();
Ufuk下面

我知道已经晚了,但我认为仍然有人需要。正如Hans Passant所说,“打印预览在很大程度上取决于打印机和页面设置。” 但是在printpreview对话框中有一个打印按钮,在大多数情况下仍然是合理的。但是该按钮将直接打印到您的默认打印机,并且从不显示对话框。如果要从printpreview对话框中选择打印对话框,则只需操作PrintPreviewDialog的ToolStrip。

它就来了(假设您初始化了printPreviewDialog1,printDialog1和printDocument1对象)

printPreviewDialog1.Document = printDocument1;
ToolStripButton b = new ToolStripButton();
b.Image = Properties.Resources.PrintIcon;
b.DisplayStyle = ToolStripItemDisplayStyle.Image;
b.Click += printPreview_PrintClick;
((ToolStrip)(printPreviewDialog1.Controls[1])).Items.RemoveAt(0);
((ToolStrip)(printPreviewDialog1.Controls[1])).Items.Insert(0, b);
printPreviewDialog1.ShowDialog();

使用上述代码,您可以删除PrintPreview的ToolStrip上的默认打印按钮,并将其替换为新创建的“打印按钮”。现在,此按钮具有Click事件处理程序,通过使用它,您可以显示PrintDialog。

private void printPreview_PrintClick(object sender, EventArgs e)
{
    try
    {
        printDialog1.Document = printDocument1;
        if (printDialog1.ShowDialog() == DialogResult.OK)
        {
            printDocument1.Print();
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, ToString());
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何向应用程序添加打印对话框

C#预览打印对话框

Windows Update在Windows 8的“添加打印机”对话框中不起作用

如何在Swing中显示打印进度对话框?

“添加打印机”对话框要求输入root密码?

wxpython 中的打印对话框错误

如何在WebEngineView中呈现的html文件中弹出文件对话框/打印对话框?

如何处理硒中的打印对话框?

在打印对话框中隐藏/删除网络打印机

在Java打印对话框中隐藏“打印到文件”

如何在Arch Linux中的打印对话框中启用“页面处理选项卡”

如何在iframe中为Chrome打印对话框设置默认文件名?

如何在Objective-C中设置PDF打印对话框预设(例如,DuplexMode)?

为什么在打印对话框中的页面时未在表格中加载数据

如何在MFC对话框中添加关闭按钮

如何在Kotlin中添加加载对话框

如何在微调对话框中添加取消按钮?

Streamreader 在打开的文件对话框中添加列

如何显示打印对话框并在同一屏幕上显示预览

自动打开Rotativa打印对话框

更改打印对话框

如何在不显示打印对话框的情况下打印WebBrowser控件内容?

如何使用Javascript弹出打印对话框?

如何使系统的打印对话框默认为chrome?

如何使用iTextSharp覆盖PDF打印对话框设置

在NSView中调用`print`打开打印对话框

字符类变量在 R 的对话框中打印多行

MVC 打印 PDF 而不在打印对话框的视图中显示

在不预览的情况下打印 RDLC 报告并允许用户在打印对话框中选择要打印的页面范围