十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇内容主要讲解“实现C#打印文档的步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“实现C#打印文档的步骤”吧!
我们注重客户提出的每个要求,我们充分考虑每一个细节,我们积极的做好网站建设、成都网站制作服务,我们努力开拓更好的视野,通过不懈的努力,成都创新互联赢得了业内的良好声誉,这一切,也不断的激励着我们更好的服务客户。 主要业务:网站建设,网站制作,网站设计,微信小程序开发,网站开发,技术开发实力,DIV+CSS,PHP及ASP,ASP.Net,SQL数据库的技术开发工程师。
C#打印文档操作方式:
C#打印文档1.新建一个项目
项目中有两个form(Form1,Form2)
C#打印文档2.在Form1中添加菜单
mainMenu1,一个richTextBox1(定义为Public),一个打印文档控件PrintDocument,名称为MyPrintDC。一个状态栏名称为myStatus。
菜单项有:
文件(mnFile){新建(mnNew),打开(mnOpen),保存(mnSave),页面设置(mnPageSetup),打印预览(mnPrintView),打印(mnPint),退出(mnClose)}
编辑(mnEdit){复制(mnCopy),剪切(mnCut),粘贴(mnPaste),查找(mnSearch)}
关于(mnAbout)
C#打印文档3.在Form2中添加一个标签:
查找内容,文本(txtSearch),命令按钮(btnSearch) 查找一下个,命令按钮(btnCancel)取消4.Form1中代码:
C#打印文档之加入引用:
using System.IO;
C#打印文档之在控件定义阶段中加入:
private StringReader myReader; private Form2 f;
C#打印文档之Form1窗体的构造函数中:
f=new Form2(); f.Owner =this; f.Hide();
C#打印文档之Form1窗体中定义一个方法CheckSave ()
private void CheckSave() { if (this.richTextBox1.Text!="") { if (MessageBox.Show("是否保存当前文件?","确认", MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK) { this.myStatus.Text ="保存文件"; SaveFileDialog svfDialog=new SaveFileDialog(); svfDialog.Filter ="文本文件|*.*|富文本格式文件|*.rtf|所有文件|*.*"; if (svfDialog.ShowDialog()==DialogResult.OK) { this.richTextBox1.SaveFile(svfDialog.FileName, RichTextBoxStreamType.PlainText); } } } }
C#打印文档之新建菜单(mnNew):
this.CheckSave(); this.richTextBox1.Clear(); this.myStatus.Text ="新建文件";
C#打印文档之打开菜单(mnOpen):
this.CheckSave(); OpenFileDialog opfDialog=new OpenFileDialog (); opfDialog.Filter ="文本文件|*.*|富文本格式文件|*.rtf|所有文件|*.*"; if (opfDialog.ShowDialog()==DialogResult.OK) { this.richTextBox1.LoadFile( opfDialog.FileName,RichTextBoxStreamType.PlainText); } this.myStatus.Text ="打开文件";
C#打印文档之保存菜单(mnSave):
this.myStatus.Text ="保存文件"; SaveFileDialog svfDialog=new SaveFileDialog(); svfDialog.Filter ="文本文件|*.*|富文本格式文件|*.rtf|所有文件|*.*"; if (svfDialog.ShowDialog()==DialogResult.OK) { this.richTextBox1.SaveFile(svfDialog.FileName, RichTextBoxStreamType.PlainText); }
C#打印文档之控件的PrintPage事件代码(MyPrintDC):
private void MyPrintDC_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { //打印文档打印页面事件代码 this.myReader=new StringReader(this.richTextBox1.Text);//定义字符读流 Graphics myGraphics=e.Graphics; Font myPrintFont=this.richTextBox1.Font; //计算一页行数 float iLinePage= e.MarginBounds.Height/myPrintFont.GetHeight(myGraphics); int iLineNumber=0;//打印行数 float fyPosition=0;//打印时的纵坐标 float fMarginLeft=e.MarginBounds.Left;//纸页面左边界 float fMarginTop=e.MarginBounds.Top; string strLine=""; while ((iLineNumberC#打印文档之页面设置菜单(mnPageSetup):
PageSetupDialog mypgDialog=new PageSetupDialog(); mypgDialog.Document =this.MyPrintDC; try { mypgDialog.ShowDialog(); } catch { this.MyPrintDC.PrintController.OnEndPrint( this.MyPrintDC,new System.Drawing.Printing.PrintEventArgs()); }C#打印文档之打印预览菜单(mnPrintView):
PrintPreviewDialog myptViewDialog=new PrintPreviewDialog(); myptViewDialog.Document =this.MyPrintDC; try { myptViewDialog.ShowDialog(); } catch { this.MyPrintDC.PrintController.OnEndPrint( this.MyPrintDC,new System.Drawing.Printing.PrintEventArgs()); } 打印菜单(mnPrint): PrintDialog ptDialog=new PrintDialog(); ptDialog.Document =this.MyPrintDC; if (ptDialog.ShowDialog()==DialogResult.OK) { try { this.MyPrintDC.Print(); } catch { this.MyPrintDC.PrintController.OnEndPrint( this.MyPrintDC,new System.Drawing.Printing.PrintEventArgs()); } }C#打印文档之复制菜单(mnCopy):
if (this.richTextBox1.SelectedText!="") { Clipboard.SetDataObject(this.richTextBox1.SelectedText); this.mnCopy.Enabled =false; this.mnCut.Enabled =false; this.mnPaste.Enabled =true; }C#打印文档之剪切菜单(mnCut):
if (this.richTextBox1.SelectedText!="") { Clipboard.SetDataObject(this.richTextBox1.SelectedText); this.richTextBox1.SelectedText =""; this.mnCopy.Enabled =false; this.mnCut.Enabled =false; this.mnPaste.Enabled =true; }C#打印文档之粘贴菜单(mnPaste):
IDataObject d=Clipboard.GetDataObject(); this.richTextBox1.SelectedText =(string)d.GetData(DataFormats.Text);C#打印文档之查找菜单(mnSearch):
f.Show();C#打印文档之富文本框richTextBox1的文件选择改变事件(SelectionChanged)
if (this.richTextBox1.SelectedText!="") { this.mnCut.Enabled =true; this.mnCopy.Enabled =true; } else { this.mnCut.Enabled =false; this.mnCopy.Enabled =false; this.mnPaste.Enabled =true; }C#打印文档4.Form2中的代码:
定义一个整型变量:
private int findPlace=0;命令按钮"查找下一个"代码
if (this.txtSearch.Text !="") { Form1 mainform=(Form1)this.Owner; if (mainform.richTextBox1.Text.Length>0) {if( (this.findPlace= mainform.richTextBox1.Text.IndexOf( this.txtSearch.Text,this.findPlace))==-1) { MessageBox.Show("没有找到!"); this.findPlace =0; } else {mainform.richTextBox1.Select( this.findPlace,this.txtSearch.Text.Length); this.findPlace= this.findPlace+this.txtSearch.Text.Length; mainform.Activate(); } } }命令按钮"取消"代码:
this.Hide(); this.Owner.Show();到此,相信大家对“实现C#打印文档的步骤”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
当前文章:实现C#打印文档的步骤
标题URL:http://6mz.cn/article/ijijhp.html