首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在.Net Winforms中使用打印预览

在 .Net Winforms 中使用打印预览,可以通过以下步骤实现:

  1. 首先,需要在项目中添加一个 PrintPreviewDialog 控件和一个 PrintDocument 控件。
  2. 在 PrintDocument 控件的 PrintPage 事件中,添加需要打印的内容。
  3. 在 PrintPreviewDialog 控件的 FormClosed 事件中,调用 PrintDocument 控件的 Dispose 方法释放资源。
  4. 最后,调用 PrintPreviewDialog 控件的 ShowDialog 方法打开预览窗口。

以下是一个简单的示例代码:

代码语言:csharp
复制
using System.Drawing.Printing;
using System.Windows.Forms;

public partial class Form1 : Form
{
    private PrintDocument printDocument = new PrintDocument();
    private PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();

    public Form1()
    {
        InitializeComponent();

        printDocument.PrintPage += PrintDocument_PrintPage;
        printPreviewDialog.FormClosed += PrintPreviewDialog_FormClosed;
    }

    private void PrintDocument_PrintPage(object sender, PrintPageEventArgs e)
    {
        // 在这里添加需要打印的内容
        e.Graphics.DrawString("Hello, World!", new Font("Arial", 12), Brushes.Black, 100, 100);
    }

    private void PrintPreviewDialog_FormClosed(object sender, FormClosedEventArgs e)
    {
        printDocument.Dispose();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        printPreviewDialog.Document = printDocument;
        printPreviewDialog.ShowDialog();
    }
}

在这个示例中,我们创建了一个 PrintDocument 控件和一个 PrintPreviewDialog 控件,并在 PrintDocument 控件的 PrintPage 事件中添加了一些简单的文本内容。在 PrintPreviewDialog 控件的 FormClosed 事件中,我们调用了 PrintDocument 控件的 Dispose 方法释放资源。最后,在按钮的 Click 事件中,我们设置了 PrintPreviewDialog 控件的 Document 属性为 PrintDocument 控件,并调用 ShowDialog 方法打开预览窗口。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用ScottPlot库.NET WinForms快速实现大型数据集的交互式显示

前言 .NET应用开发数据集的交互式显示是一个非常常见的功能,如需要创建折线图、柱状图、饼图、散点图等不同类型的图表将数据呈现出来,帮助人们更好地理解数据、发现规律,并支持决策和沟通。...本文我们将一起来学习一下如何使用ScottPlot库.NET WinForms快速实现大型数据集的交互式显示。...将FormsPlot (ScottPlot.WinForms)从工具箱拖到窗体: 输入以下代码: public partial class LineChart : Form {...将FormsPlot (ScottPlot.WinForms)从工具箱拖到窗体: 输入以下代码: public partial class BarChart : Form {...将FormsPlot (ScottPlot.WinForms)从工具箱拖到窗体: 输入以下代码: public partial class ScatterChart : Form {

40710

.NET Core - 解决VS2019.net core WinForms暂时无法使用Designer的临时方法

具体的解决方法是同一个 Solution下创建两个项目: 用于设计WinForms应用程序的.NET Framework应用程序(.net Framework 项目) 用于运行WinForms应用程序的...此篇文章有关于WPF的姊妹篇解决VS2019.net core WPF 暂时无法使用 Designer 的临时方法 ,但对WPF而言实现起来比WinForms简单很多。...核心思想同样是借壳~ 该方法,只要添加新的Win Form或新的UserControl,就需要在Classic Framework WinForms项目(.net Framework的Win Forms...刚创建的Solution中使用vs自带的模板,选择其中的.net framework forms添加新的project,取名为"CoreHelloForm.Designer" ? ? ?...项目`CoreHelloForm.Designer以"As Link"的方式引用.net core form项目下的MainForm相关文件 选中项目CoreHelloForm.Designer,右键

2.2K30
  • Autofac.NET Core 使用

    NET CORE 也内置了依赖注入,但是有些情况下需要用到Autofac去进行依赖注入,Autofac支持的所有注入方式以外,还支持属性注入和方法注入。...接下来我们通过示例来简单了解Autofac的使用 示例 新建两个.NET CORE 项目,一个WEB层,一个服务层 ? 服务层添加几个测试服务和模块文件 ? 服务代码都如图所示 ?...接下来就是WEB层配置Autofac,这里需要注意的是.Net Core2+ 和 .Net Core3+ 的配置方法稍有不同 .NET CORE 2+ NET Core 2.1时候,AutoFac...CORE 3+ .NET Core3.0 使用上面的写法,框架运行之后会报错: ConfigureServices returning an System.IServiceProvider isn't...RegisterForNetCore3(ContainerBuilder builder) { builder.RegisterModule(); } 最后控制器依赖注入服务

    1.9K30

    .Net Core 2.0使用MySQL

    之前,我简单的介绍过.net core中使用Mongodb(见文章《.Net Core系列教程(三)——使用Mongodb》),也使用过PostgreSQL(但是没有写文章介绍怎么使用,只是文章《....Net Core系列教程(一)——环境搭建》简单介绍过如何安装)。...下面说下怎样.net core中使用MySQL,这个问题网上随便一搜有很多,我的当然也是从网上搜索来的,只是用自己的语言再次整理下而已。...使用MySQL时,需要使用到MySQL的驱动,之前MySQL官方没有出驱动的时候,需要使用第三方的,不过现在有官方的驱动,还是尽量使用官方的吧,我这里也以官方的为准。...需要注意的是,MySQL.Data需要安装最新版的(现在是6.10.3-rc版),旧版本不支持.net core 2.0 先在appsettings.json文件,添加数据库的配置: "ConnectionStrings

    1.5K50

    .NET Core 使用 LibreOffice 实现 Office 预览(Docker 部署)

    前些年做云盘产品的时候,一个很核心的功能就是 Office 文件预览,当时还没有使用 .NET Core ,程序部署 Windows Server 服务器上,文件预览的方案采用了微软的 OWA 。...目前在做的零代码产品的表单附件控件,同样面临着 Office 文件预览的问题,现在技术栈采用了 .NET Core ,并使用容器化部署,自然就抛弃了 OWA 的方案。...PDF 文件; 3、将 PDF 文件存储到 MongoDB ,并将 PDF 文件 MongoDB 的 FileID 存储到平台和原始文件进行关联; 4、表单中点击文件预览使用关联的 PDF...进行基础镜像的构建,构建好的基础镜像供文件预览镜像构建时使用。...构建文件预览镜像 1、 centos 服务器的 /data 目录创建目录 doc-preview-docker-build ; 2、将转换程序 OfficeToPdf 进行编译发布,将发布后的文件拷贝到目录

    1.6K30

    Azure App Service 上运行 .NET 6 预览

    https://devblogs.microsoft.com/dotnet/announcing-net-6-preview-1/ 要在App Service上开始使用.NET 6(预览版),可以使用两种部署方法之一...本地环境 为了您的应用程序中使用.NET 6,您需要首先安装 .NET 6 SDK。对于下面的示例,我们将使用最新的.NET SDK 6 Preview2。...要在.NET完成只包含的部署,您将首先像往常一样创建项目,然后选择应用程序模板后为应用程序版本选择 .NET 6(Preview)。选择 Create 并根据需要修改您的应用程序。 ? 2....最新版本的 Visual Studio ,您可以从新菜单中选择目标的发布位置。选择 “Azure”。 ? 3....部署容器时,您会将应用程序及其依赖项打包到基于 Linux 或 Windows 的镜像,以App Service平台上运行。

    60250

    nuxt实现图片放大预览功能

    v-viewer 基于vue的一个插件,可以实现图片放大,缩小,旋转,拖拽,预览等各种功能,效果还是很棒的。这是我Github摸鱼时发现的一个仓库,感觉很有用,就分享一下使用过程。...Github: https://github.com/mirari/v-viewer 1.安装 npm install v-viewer 2.用法 plugins 中新建 viewer.js 文件。...transition': true, 'fullscreen': true, 'keyboard': true, 'url': 'data-source' } }) 然后再 nuxt.config.js 引入...{ src: '@/plugins/viewer', ssr: false } ], 最后使用的页面引入。...-- 页面内容 --> 在任意页面引入,可以是一个小组件页面,也可以是根页面,取决于你想在哪里引入这个功能,只要将class, v-viewer, v-highlight 这三个参数引入即可

    1.9K30

    ASP.NET 5使用SignalR

    题记:SignalR作为ASP.NET中进行Web实时双向通信的组件,ASP.NET 5也得到了同步发展。不过,用法和之前还是细节上有所不同,而资料又相对稀少。本文就是一个简单的入门向导。...通过SignalR,开发人员可以ASP.NET开发的Web应用实现服务器和客户端的双向实时通信。服务器可以即时推送内容给在线的客户端。...同时,用法和之前ASP.NET 4.x时代(比如在ASP.NET MVC 5)还是有点细微的区别,所以导致参考现有文档可能会遇到错误。...接着”Configure“添加1行代码app.UseSignalR(); 7,视图文件实现加入、发送消息、显示消息的界面,代码基本参考了(http://www.asp.net/signalr/overview...如果开发人员想使用Signal,需要在客户端层使用像jQuery的JavaScript框架,并在服务端层使用.NET代码编写应用和服务。

    3.3K100

    条码打印软件如何打印黑底白字标签

    条码打印软件绘制普通文本添加文字的的时候,一般都是白底黑字的。但是有的时候,个别客户想要实现黑底白字的效果,这个条码打印软件该如何设置呢?...接下来我们一起来看下在条码打印软件中将文字设置成黑底白字的操作步骤: 1.打开条码打印软件,点击新建,弹出文档设置对话框,文档设置-画布,可以插入背景图片,也可以设置背景颜色,这里以设置背景颜色为黑色...然后文字,我们可以看到文字的默认颜色为黑色,如果想要显示白色的效果的话,我们点击颜色后面的方框,弹出字体颜色对话框,样本,我们可以选中颜色为白色,点击确定。...效果如下图所示: 白色作为一种特殊颜色,需要用到专色油墨打印条码打印软件,也可以实现专色的打印,要打印白色,可以条码打印软件勾选“专色”设置。...以上就是条码打印软件设置黑底白字的操作步骤,字体颜色可以根据自己的需求自定义进行设置的。

    2.2K20

    【译】.NET 7 预览版 1 的 ASP.NET Core 更新

    这是 .NET 下一个主要版本的第一个预览版,其中将包括使用 ASP.NET Core 进行 Web 开发的下一波创新。 .NET 7 ,我们计划对 ASP.NET Core 进行广泛投资。...HTTP/3:HTTP/3 支持作为 .NET 6 预览功能提供。对于 .NET 7,我们希望完成它并使其成为默认启用的受支持功能。...未来的预览,您可以期待在我们的 HTTP/3 支持中看到高级 TLS 功能和更多性能改进。 最小 API:添加对端点过滤器和路由分组的支持,作为最小 API 的核心原语。....NET 7 Preview 1 是众多 .NET 7 预览的第一个,为 2022 年 11 月的 .NET 7 版本做准备。...我最近一集 On .NET 中加入了 James Montemagno,以分解 .NET 7 和 .NET 7 的 ASP.NET Core 的所有内容: 以下是此预览版中新增内容的摘要: 最小的

    4K10

    条码打印软件如何打印黑底白字标签

    条码打印软件绘制普通文本添加文字的的时候,一般都是白底黑字的。但是有的时候,个别客户想要实现黑底白字的效果,这个条码打印软件该如何设置呢?...接下来我们一起来看下在条码打印软件中将文字设置成黑底白字的操作步骤: 1.打开条码打印软件,点击新建,弹出文档设置对话框,文档设置-画布,可以插入背景图片,也可以设置背景颜色,这里以设置背景颜色为黑色...然后文字,我们可以看到文字的默认颜色为黑色,如果想要显示白色的效果的话,我们点击颜色后面的方框,弹出字体颜色对话框,样本,我们可以选中颜色为白色,点击确定。...效果如下图所示: 白色作为一种特殊颜色,需要用到专色油墨打印条码打印软件,也可以实现专色的打印,要打印白色,可以条码打印软件勾选“专色”设置。...以上就是条码打印软件设置黑底白字的操作步骤,字体颜色可以根据自己的需求自定义进行设置的。

    2.1K30

    【C】KoobooJsonasp.net core使用

    详细介绍可以参考官方说明,项目地址:https://github.com/Kooboo/Json ps:楼主目前使用的版本是:asp.net core 2.2 asp.net core 2.x ,...默认使用的json序列化工具是 Newtonsoft.Json ,如果你正在使用 asp.net core mvc/webapi ,并且需要对 Json 序列化进行一些配置(例如 首字母大小写,日期格式化等...你可以直接这样 opts.UseKoobooFormatters(); 至此,已经可以项目中使用了,效果如下: ?...return null; } } } 值得注意的是,对于byte[]类型的base64解析行为, KoobooJson已经内嵌配置项...CoreJson序列化处理整理 2.将 .NET Core 2.0 的默认 JSON 解析器替换为 Jil ———————————————— 版权声明:本文为CSDN博主「j_teng」的原创文章,

    65650

    Mockplus 2.1 (预览版)中使用母版

    Mockplus 2.1 预览版新增母版功能,可以直接复用组件,减少重复设计。 首先可以看一个母版的使用演示: 下面详细介绍一下母版的相关操作: 1....添加母版 工作区的任意组件上面点击右键,弹出右键菜单,选择 “设置为母版”即可添加一个母版组件。 母版添加后,可以左上角的母版管理面板中看到。 2....使用母版 直接将母版从母版管理拖入工作区就可以使用,可以应用到项目中的任意页面上。 也可以直接复制一个母版然后粘贴。 3....修改会自动应用到所有使用了该母版的页面上。 4. 删除母版 删除所有使用后,就可以母版管理该母版上点击右键,从右键菜单中选择删除。

    83950

    .NET Core 中使用Quartz.NET

    包引入了对该模式的直接支持,Quartz.Extensions.Hosting可以与ASP.NET Core应用程序一起使用,也可以与基于“通用主机”的工作程序服务一起使用。...虽然.NET Core可以创建“定时”后台服务(例如,每10分钟运行一次任务),但Quartz.NET提供了更为强大的解决方案, 通过使用Cron表达式,您可以确保任务特定时间(例如,凌晨2:30)运行...注册一个IJobFactory,然后从DI容器获取Job,这样也可以使用 Scoped 类型的服务。...WaitForJobsToComplete():当程序关闭时,此设置可确保Quartz.NET退出之前等待Job正常结束。...将配置提取到appsettings.json 一般情况,我们都不会把cron表达式写死代码,一般是设置appsettings.json { "Quartz": { "HelloWorldJob

    1.3K10

    Android logcat打印FFmpeg调试信息

    概述 日常Android开发,我们都是通过Logcat来查看日志,但是将FFmpeg移植到Android上,无法Logcat查看调试信息而无法分析错误。...FFmpeg源码的ffmpeg.c文件的main函数中有avlogsetcallback的调用,而logcallback_null是个空的回调函数,一个思路是可以直接在该回调函数写打印代码: int...define FF_LOG_FATAL ANDROID_LOG_FATAL #define FF_LOG_SILENT ANDROID_LOG_SILENT // 打印可变参数... configuration日志行可以看到我在编译时的配置项,当我们拿到一个别人编译好的库,如果我们不知道他的编译脚本,通过这日志信息也可以知道。...参考链接 https://blog.csdn.net/matrix_laboratory/article/details/57080891 https://blog.csdn.net/u012027644

    1.5K10

    SQL Server2005使用 .NET程序集

    昨天完成了一个最简单的在数据库创建标量值函数,今天主要完成表值函数,存储过程和用户定义类型和.NET结合下的使用方法. 1,表值函数 所谓表值函数就是说这个函数返回的结果是一个Table,而不是单个的值....NET 创建这样的函数,返回的结果是一个IEnumerable接口.这个接口非常灵活,所有.NET数组集合等都是实现了该接口的.下面我们举一个简单的例子来说明....VS2005创建一个类Student,这个就是我们要返回的表的内容,类下面有属性int Age,string sName,DateTime Birthday,int SID; 然后另外一个类UserFunction...这儿需要说明一下就是数据库的类型和.NET的类型的对应问题.int,datetime就不说了,主要是.NET的string,在数据库没有string类型,FillRow中指出了类型SqlString...我们运行看看结果: declare @a int exec @a=Add2Num , print @a 3.用户定义类型(UDT) 要创建UDT类必须符合"UDT规范",.NET的约束如下: 他们必须带

    1.6K10
    领券