在Windows窗体应用程序中打印和制作报表_10704

上传人:fgh****35 文档编号:178203283 上传时间:2022-12-27 格式:DOC 页数:7 大小:69KB
收藏 版权申诉 举报 下载
在Windows窗体应用程序中打印和制作报表_10704_第1页
第1页 / 共7页
在Windows窗体应用程序中打印和制作报表_10704_第2页
第2页 / 共7页
在Windows窗体应用程序中打印和制作报表_10704_第3页
第3页 / 共7页
资源描述:

《在Windows窗体应用程序中打印和制作报表_10704》由会员分享,可在线阅读,更多相关《在Windows窗体应用程序中打印和制作报表_10704(7页珍藏版)》请在装配图网上搜索。

1、第6章 在Windows窗体应用程序中打印和制作报表课堂练习在Windows窗体应用程序中添加打印支持 将PrintDocument控件添加到应用程序中3PrintDocument类为应用程序提供了什么功能?答:PrintDocument类使Windows 窗体应用程序能够对打印进程进行初始化(通过调用PrintDocument.Print方法),并且提供对打印机和页面设置的访问,这些页面设置可以控制打印文档的显示效果。 创建自定义的PrintPage过程5PrintDocument.PrintPage事件的目的是什么?答:使用对PrintDocument.PrintPage事件进行处理的过程

2、来分别构造打印文档的每个页面,控制创建的打印文档页面的数量,为打印文档的每个页面调整页面设置以及在需要时取消打印作业。使用PrintPageEventArgs 参数的Graphics对象来分别构造每页的页面内容。通过使用PrintDocument.Print 方法将Graphics对象传递给打印设备。 11为什么应用程序不能显示多页呢?答:因为在默认的情况下PrintPageEventArgs对象的HasMorePages属性为False。当打印作业包含多个文档页面时,必须为打印循环开发程序逻辑。课堂练习:使用PrintPreviewDialog控件 在应用程序中添加PrintPreviewD

3、ialog控件3PrintPreviewDialog控件出现在“视图设计器”窗口的什么位置?答:PrintPreviewDialog控件将被添加到“视图设计器”窗口底部的组件托盘中。 创建显示打印文档的PrintPreview过程6有没有方法能够使得对话框窗口比默认的大一些。答:有。可以使用对话框的WindowState属性将窗口的默认状态设为Maximized。 查看其它一些显示打印文档的方法4什么时候使用PrintPreviewControl显示打印文档而不是使用PrintPreviewDialog?答:当需要自定义的应用程序的打印预览功能时,可使用PrintPreviewControl来

4、显示文档。课堂练习:使用PageSetupDialog 控件 在应用程序中添加PageSetupDialog控件3PageSetupDialog控件出现在设计视图窗口的什么位置?答:PageSetupDialog控件被添加到设计视图窗口底部的组件托盘中。 创建显示页面设置的PageSetup过程5运行PrintPreviewDialog应用程序,使用菜单或按钮来显示Page Setup对话框。为什么出现错误?答:PageSetupDialog控件需要提供表示文档页面设置的PageSettings对象。9显示打印文档的预览。为什么新的设置没有生效?答:尽管PageSetupDialog自动地将新

5、设置放到MyPageSettings对象中,但仍然必须将页面设置赋给PrintDocument对象。 查看PageSetupDialog控件的其它成员3如何使用PageSetupDialog的其它成员?答:可以使用其它的成员来自定义PageSetupDialog以及控制用户可以选择的设置范围。课堂练习:使用PrintDialog控件 将PrintDialog控件添加到应用程序中3PrintDialog 控件出现在设计视图窗口的什么位置?答:PrintDialog控件将被添加到设计视图窗口底部的组件托盘中。 创建显示Print对话框的PrintDoc过程5运行PrintDialog应用程序,然后

6、单击用来显示“打印”对话框的菜单项或按钮。为什么“打印”对话框没有打开?答:在显示PrintDialog之前必须对PrintDialog.Document属性进行设置。 使用PrintDocument.Print方法打印文档3文档为什么没有被打印?答:PrintDialog并没有调用PrintDocument.Print方法必须自己添加代码。然而,这意味着必须知道用户点击了哪个对话框按钮。可以使用DialogResult对象进行确认。 课堂练习:使用GDI+构造打印文档内容 创建钢笔、画笔和字体9输入的一些代码语句是否需要对Drawing2D命名空间的引用?答:是的。用来设置DashStyle

7、和DashCap的代码语句使用Drawing2D命名空间所提供的枚举。 在页面上测量和定位文本5如何绘制右对齐文本?答:可以通过测量文本字符串和建立水平位置绘制右对齐文本,所建的水平位置等于定义的右端位置与文本字符串的宽度的差。习题答案1. 以下那个Print方法可以打印10页a)public class myprintprivate int pages;public void Print()PrintDocument pd = new PrintDocument(); pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);pages=

8、1;pd.Print();private void pd_PrintPage(object sender, PrintPageEventArgs ev) ev.Graphics.DrawString(this is page+pages.ToString(),new Font(Arial,10),System.Drawing.Brushes.Black,10,10);pages+;if (pages =10) ev.HasMorePages = true;else ev.HasMorePages = false;b)public class myprintprivate int pages;p

9、ublic void Print()PrintDocument pd = new PrintDocument(); pages=1;pd.Print();private void pd_PrintPage(object sender, PrintPageEventArgs ev) ev.Graphics.DrawString(this is page+pages.ToString(),new Font(Arial,10),System.Drawing.Brushes.Black,10,10);pages+;if (pages =10) ev.HasMorePages = true;else e

10、v.HasMorePages = false;c)public class myprintprivate int pages;public void Print()PrintDocument pd = new PrintDocument(); pages=1;pd.Print();pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);private void pd_PrintPage(object sender, PrintPageEventArgs ev) ev.Graphics.DrawString(this is page+pag

11、es.ToString(),new Font(Arial,10),System.Drawing.Brushes.Black,10,10);pages+;if (pages =10) ev.HasMorePages = true;else ev.HasMorePages = false;d)public class myprintprivate int pages;public void Print()PrintDocument pd = new PrintDocument(); pd.Print();private void pd_PrintPage(object sender, PrintP

12、ageEventArgs ev) ev.Graphics.DrawString(this is page+pages.ToString(),new Font(Arial,10),System.Drawing.Brushes.Black,10,10);pages+;if (pages =10) ev.HasMorePages = true;else ev.HasMorePages = false;答:A2. 下面代码是一个使用PrintPreviewDialog控件来显示文档打印预览a)printPreviewDialog1.PrintPreviewControl.StartPage = 0;p

13、rintPreviewDialog1.Document = printDocument1;printPreviewDialog1.ShowDialog();printDocument1.Print();b)printDocument1.Print();printPreviewDialog1.PrintPreviewControl.StartPage = 0;printPreviewDialog1.Document = printDocument1;printPreviewDialog1.ShowDialog();c)printPreviewDialog1.PrintPreviewControl

14、.StartPage = 0;printPreviewDialog1.ShowDialog();printPreviewDialog1.Document = printDocument1;printDocument1.Print();d)printDocument1.Print();printPreviewDialog1.PrintPreviewControl.StartPage = 0;printPreviewDialog1.ShowDialog();printPreviewDialog1.Document = printDocument1;答:A3. 在printDocument1打印之前

15、显示一个page setup dialog已接受某些打印设置.a)PageSetupDialog pageSetupDialog1=new PageSetupDialog ();pageSetupDialog1.Document = printDocument1;pageSetupDialog1.ShowDialog();printDocument1.Print();b)PageSetupDialog pageSetupDialog1=new PageSetupDialog ();pageSetupDialog1.PageSettings= printDocument1;pageSetupDi

16、alog1.ShowDialog();printDocument1.Print();c)PageSetupDialog pageSetupDialog1=new PageSetupDialog ();pageSetupDialog1.Document = printDocument1;printDocument1.Print();pageSetupDialog1.ShowDialog();d)PageSetupDialog pageSetupDialog1=new PageSetupDialog ();pageSetupDialog1.PageSettings= printDocument1;

17、printDocument1.Print();pageSetupDialog1.ShowDialog();答:A4. 在PrintDocument的PrintPage事件中(private void pd_PrintPage(object sender, PrintPageEventArgs ev) ), 如何取得可以打印的文本行数(font1 是使用的字体)。a) int linesPerPage; linesPerPage =(int)( ev.MarginBounds.Height / font1.GetHeight(ev.Graphics);b) int linesPerPage; l

18、inesPerPage = ev.MarginBounds.Height / font1.GetHeight(ev.Graphics);c) int linesPerPage; linesPerPage =(int)( ev.Graphics.Height / font1.GetHeight(ev.Graphics);a) int linesPerPage; linesPerPage =ev.Graphics.Height / font1.GetHeight(ev.Graphics);答:A5. 列出在Visual Studio .NET打印简单文本文件所涉及的任务。答:使用StreamRea

19、der 对象来读取文本文件的内容,然后将StreamReader中的内容逐行绘制到PrintDocument.PrintPage 事件处理程序中的Graphics对象中。Graphics对象是通过PrintPageEventArgs类提供的,它是PrintPage事件处理程序的参数。6. 使用什么属性来捕获用户在对话框中的输入?答:使用父窗体的DialogResult属性来捕获所发生的动作来关闭对话框。例如,可以使用DialogResult属性来确定是通过点击“确定”还是点击“取消”来关闭PrintDialog对话框的。7. 在使用GDI+打印时,Graphics对象的作用是什么?答:Grap

20、hics对象充当画布,GDI方法在上面进行绘制。8. 使用GDI+的哪些方法来绘制文本和图形?答:使用诸如DrawRectangle 和 FillEllipse方法来绘制二维矢量图。DrawString方法用来绘制文本。9. 下面的代码创建了哪种对象?Pen myPen = new Pen(Color.Black);Graphics g = this.CreateGraphics();g.DrawEllipse(myPen, 20, 30, 10, 50);答:通过使用默认宽度为1象素(默认的绘图单位)的实心黑色钢笔,Visual C# .NET 代码会产生一个椭圆的二维矢量轮廓图形。10. 列出使用Crystal Reports的一些好处。答:Crystal Reports提供一种快速、简单的方法来生成专业外观的报表。11. 列出使用Crystal Reports创建报表所涉及的步骤。答:建立与数据的数据库连接,在项目中添加Crystal Report(.rpt文件),使用Crystal Report 库配置报表,在窗体中添加Crystal ReportViewer控件,声明报表对象,然后将报表的实例(.rpt)赋值给该对象,使用报表对象的SetDataSource 属性用数据填充该对象,然后将报表对象赋值给CrystalReportViewer的ReportSource属性。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!