jiurenkeji 2013-09-23 02:30 采纳率: 0%
浏览 1194

C# 打印预览中打印事件

我在C# 中进入打印预览界面 我要如何获得打印预览中的打印事件呢? 我需要通过他来改变我 数据库中 是否打印的状态 求指教

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-20 12:30
    关注

    该回答引用ChatGPT

    要获取打印预览中的打印事件,您可以使用PrintDocument类并在其PrintPage事件中处理要打印的内容。在此事件中,您可以访问打印预览中显示的页面,并在打印操作完成后执行一些操作。


    以下是一个示例代码片段,演示如何使用PrintDocument类在打印预览中进行打印并在打印完成后更改数据库中的打印状态:

    private PrintDocument printDoc = new PrintDocument();
    
    private void PrintPreviewButton_Click(object sender, EventArgs e)
    {
        PrintPreviewDialog printPreview = new PrintPreviewDialog();
        printDoc.PrintPage += new PrintPageEventHandler(printDoc_PrintPage);
        printPreview.Document = printDoc;
        printPreview.ShowDialog();
    }
    
    private void printDoc_PrintPage(object sender, PrintPageEventArgs e)
    {
        // 在这里处理要打印的内容
    
        // 更改数据库中打印状态的代码
        // ...
    
        // 检查是否还有更多页面要打印
        if (/*还有更多页面*/)
        {
            e.HasMorePages = true;
        }
        else
        {
            e.HasMorePages = false;
        }
    }
    

    在上面的示例代码中,当用户单击打印预览按钮时,PrintPreviewButton_Click事件处理程序将创建一个PrintPreviewDialog对象并将PrintDocument对象分配给它。在PrintDocument对象的PrintPage事件处理程序中,您可以处理要打印的内容并更改数据库中的打印状态。如果仍有其他页面要打印,则将HasMorePages属性设置为true,否则将其设置为false。


    请注意,您需要将代码中的数据库更新逻辑替换为您自己的逻辑,并根据需要更改其他代码以满足您的具体要求。

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?