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

上传人:阳*** 文档编号:35092332 上传时间:2021-10-25 格式:DOC 页数:7 大小:46.50KB
返回 下载 相关 举报
在Windows窗体应用程序中打印和制作报表_第1页
第1页 / 共7页
在Windows窗体应用程序中打印和制作报表_第2页
第2页 / 共7页
在Windows窗体应用程序中打印和制作报表_第3页
第3页 / 共7页
点击查看更多>>
资源描述
第6章 在Windows窗体应用程序中打印和制作报表课堂练习在Windows窗体应用程序中添加打印支持 将PrintDocument控件添加到应用程序中3PrintDocument类为应用程序提供了什么功能?答:PrintDocument类使Windows 窗体应用程序能够对打印进程进行初始化(通过调用PrintDocument.Print方法),并且提供对打印机和页面设置的访问,这些页面设置可以控制打印文档的显示效果。 创建自定义的PrintPage过程5PrintDocument.PrintPage事件的目的是什么?答:使用对PrintDocument.PrintPage事件进行处理的过程来分别构造打印文档的每个页面,控制创建的打印文档页面的数量,为打印文档的每个页面调整页面设置以及在需要时取消打印作业。使用PrintPageEventArgs 参数的Graphics对象来分别构造每页的页面内容。通过使用PrintDocument.Print 方法将Graphics对象传递给打印设备。 11为什么应用程序不能显示多页呢?答:因为在默认的情况下PrintPageEventArgs对象的HasMorePages属性为False。当打印作业包含多个文档页面时,必须为打印循环开发程序逻辑。课堂练习:使用PrintPreviewDialog控件 在应用程序中添加PrintPreviewDialog控件3PrintPreviewDialog控件出现在“视图设计器”窗口的什么位置?答:PrintPreviewDialog控件将被添加到“视图设计器”窗口底部的组件托盘中。 创建显示打印文档的PrintPreview过程6有没有方法能够使得对话框窗口比默认的大一些。答:有。可以使用对话框的WindowState属性将窗口的默认状态设为Maximized。 查看其它一些显示打印文档的方法4什么时候使用PrintPreviewControl显示打印文档而不是使用PrintPreviewDialog?答:当需要自定义的应用程序的打印预览功能时,可使用PrintPreviewControl来显示文档。课堂练习:使用PageSetupDialog 控件 在应用程序中添加PageSetupDialog控件3PageSetupDialog控件出现在设计视图窗口的什么位置?答:PageSetupDialog控件被添加到设计视图窗口底部的组件托盘中。 创建显示页面设置的PageSetup过程5运行PrintPreviewDialog应用程序,使用菜单或按钮来显示Page Setup对话框。为什么出现错误?答:PageSetupDialog控件需要提供表示文档页面设置的PageSettings对象。9显示打印文档的预览。为什么新的设置没有生效?答:尽管PageSetupDialog自动地将新设置放到MyPageSettings对象中,但仍然必须将页面设置赋给PrintDocument对象。 查看PageSetupDialog控件的其它成员3如何使用PageSetupDialog的其它成员?答:可以使用其它的成员来自定义PageSetupDialog以及控制用户可以选择的设置范围。课堂练习:使用PrintDialog控件 将PrintDialog控件添加到应用程序中3PrintDialog 控件出现在设计视图窗口的什么位置?答:PrintDialog控件将被添加到设计视图窗口底部的组件托盘中。 创建显示Print对话框的PrintDoc过程5运行PrintDialog应用程序,然后单击用来显示“打印”对话框的菜单项或按钮。为什么“打印”对话框没有打开?答:在显示PrintDialog之前必须对PrintDialog.Document属性进行设置。 使用PrintDocument.Print方法打印文档3文档为什么没有被打印?答:PrintDialog并没有调用PrintDocument.Print方法必须自己添加代码。然而,这意味着必须知道用户点击了哪个对话框按钮。可以使用DialogResult对象进行确认。 课堂练习:使用GDI+构造打印文档内容 创建钢笔、画笔和字体9输入的一些代码语句是否需要对Drawing2D命名空间的引用?答:是的。用来设置DashStyle和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=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;public 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 ev.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+pages.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, 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;答:A2. 下面代码是一个使用PrintPreviewDialog控件来显示文档打印预览a)printPreviewDialog1.PrintPreviewControl.StartPage = 0;printPreviewDialog1.Document = printDocument1;printPreviewDialog1.ShowDialog();printDocument1.Print();b)printDocument1.Print();printPreviewDialog1.PrintPreviewControl.StartPage = 0;printPreviewDialog1.Document = printDocument1;printPreviewDialog1.ShowDialog();c)printPreviewDialog1.PrintPreviewControl.StartPage = 0;printPreviewDialog1.ShowDialog();printPreviewDialog1.Document = printDocument1;printDocument1.Print();d)printDocument1.Print();printPreviewDialog1.PrintPreviewControl.StartPage = 0;printPreviewDialog1.ShowDialog();printPreviewDialog1.Document = printDocument1;答:A3. 在printDocument1打印之前显示一个page setup dialog已接受某些打印设置.a)PageSetupDialog pageSetupDialog1=new PageSetupDialog ();pageSetupDialog1.Document = printDocument1;pageSetupDialog1.ShowDialog();printDocument1.Print();b)PageSetupDialog pageSetupDialog1=new PageSetupDialog ();pageSetupDialog1.PageSettings= printDocument1;pageSetupDialog1.ShowDialog();printDocument1.Print();c)PageSetupDialog pageSetupDialog1=new PageSetupDialog ();pageSetupDialog1.Document = printDocument1;printDocument1.Print();pageSetupDialog1.ShowDialog();d)PageSetupDialog pageSetupDialog1=new PageSetupDialog ();pageSetupDialog1.PageSettings= printDocument1;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; linesPerPage = 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打印简单文本文件所涉及的任务。答:使用StreamReader 对象来读取文本文件的内容,然后将StreamReader中的内容逐行绘制到PrintDocument.PrintPage 事件处理程序中的Graphics对象中。Graphics对象是通过PrintPageEventArgs类提供的,它是PrintPage事件处理程序的参数。6. 使用什么属性来捕获用户在对话框中的输入?答:使用父窗体的DialogResult属性来捕获所发生的动作来关闭对话框。例如,可以使用DialogResult属性来确定是通过点击“确定”还是点击“取消”来关闭PrintDialog对话框的。7. 在使用GDI+打印时,Graphics对象的作用是什么?答:Graphics对象充当画布,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属性。文档可自由编辑打印
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 合同文书


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

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


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