自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

實(shí)現(xiàn)C#打印文檔實(shí)例詳解

開(kāi)發(fā) 后端
實(shí)現(xiàn)C#打印文檔所用到的類(lèi)是什么呢?實(shí)現(xiàn)C#打印文檔具體的步驟又是什么呢?那么本文就向你介紹C#打印文檔詳細(xì)的內(nèi)容。

我們?cè)趯?shí)際開(kāi)發(fā)中會(huì)遇到實(shí)現(xiàn)C#打印文檔的需求,那么如何設(shè)計(jì)一個(gè)編輯處理程序呢,它可以實(shí)現(xiàn)編輯和打印、打印預(yù)覽文檔。那么下面我們就詳細(xì)向你介紹C#打印文檔的具體的操作和實(shí)現(xiàn)。

C#打印文檔操作方式:

C#打印文檔1.新建一個(gè)項(xiàng)目

項(xiàng)目中有兩個(gè)form(Form1,Form2)

C#打印文檔2.在Form1中添加菜單

mainMenu1,一個(gè)richTextBox1(定義為Public),一個(gè)打印文檔控件PrintDocument,名稱為MyPrintDC。一個(gè)狀態(tài)欄名稱為myStatus。

菜單項(xiàng)有:

文件(mnFile){新建(mnNew),打開(kāi)(mnOpen),保存(mnSave),頁(yè)面設(shè)置(mnPageSetup),打印預(yù)覽(mnPrintView),打印(mnPint),退出(mnClose)}

編輯(mnEdit){復(fù)制(mnCopy),剪切(mnCut),粘貼(mnPaste),查找(mnSearch)}

關(guān)于(mnAbout)

C#打印文檔3.在Form2中添加一個(gè)標(biāo)簽:

查找內(nèi)容,文本(txtSearch),命令按鈕(btnSearch) 查找一下個(gè),命令按鈕(btnCancel)取消4.Form1中代碼:

C#打印文檔之加入引用:

  1. using System.IO; 

C#打印文檔之在控件定義階段中加入:

  1. private StringReader myReader;  
  2.  
  3. private Form2 f;  

C#打印文檔之Form1窗體的構(gòu)造函數(shù)中:

  1. f=new Form2();  
  2.  
  3. f.Owner =this;  
  4.  
  5. f.Hide();  

C#打印文檔之Form1窗體中定義一個(gè)方法CheckSave ()

  1. private void CheckSave()  
  2.  
  3. {  
  4.  
  5. if (this.richTextBox1.Text!="")  
  6.  
  7. {  
  8.  
  9. if (MessageBox.Show("是否保存當(dāng)前文件?","確認(rèn)",  
  10. MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK)  
  11.  
  12. {  
  13.  
  14. this.myStatus.Text ="保存文件";  
  15.  
  16. SaveFileDialog svfDialog=new SaveFileDialog();  
  17.  
  18. svfDialog.Filter ="文本文件|*.*|富文本格式文件|*.rtf|所有文件|*.*";  
  19.  
  20. if (svfDialog.ShowDialog()==DialogResult.OK)  
  21.  
  22. {  this.richTextBox1.SaveFile(svfDialog.FileName,  
  23. RichTextBoxStreamType.PlainText);  
  24.  
  25. }  
  26.  
  27. }  
  28.  
  29. }  
  30.  
  31. }  

C#打印文檔之新建菜單(mnNew):

  1. this.CheckSave();  
  2.  
  3. this.richTextBox1.Clear();  
  4.  
  5. this.myStatus.Text ="新建文件";  

C#打印文檔之打開(kāi)菜單(mnOpen):

  1. this.CheckSave();  
  2.  
  3. OpenFileDialog opfDialog=new OpenFileDialog ();  
  4.  
  5. opfDialog.Filter ="文本文件|*.*|富文本格式文件|*.rtf|所有文件|*.*";  
  6.  
  7. if (opfDialog.ShowDialog()==DialogResult.OK)  
  8.  
  9. {  this.richTextBox1.LoadFile(  
  10. opfDialog.FileName,RichTextBoxStreamType.PlainText);  
  11.  
  12. }  
  13.  
  14. this.myStatus.Text ="打開(kāi)文件";  

C#打印文檔之保存菜單(mnSave):

  1. this.myStatus.Text ="保存文件";  
  2.  
  3. SaveFileDialog svfDialog=new SaveFileDialog();  
  4.  
  5. svfDialog.Filter ="文本文件|*.*|富文本格式文件|*.rtf|所有文件|*.*";  
  6.  
  7. if (svfDialog.ShowDialog()==DialogResult.OK)  
  8.  
  9. {  
  10.  
  11. this.richTextBox1.SaveFile(svfDialog.FileName,  
  12. RichTextBoxStreamType.PlainText);  
  13.  
  14. }  

C#打印文檔之控件的PrintPage事件代碼(MyPrintDC):

  1. private void MyPrintDC_PrintPage(object sender,  
  2.  System.Drawing.Printing.PrintPageEventArgs e)  
  3.  
  4. {  
  5.  
  6. //打印文檔打印頁(yè)面事件代碼  
  7.  
  8. this.myReader=new StringReader(this.richTextBox1.Text);//定義字符讀流  
  9.  
  10. Graphics myGraphics=e.Graphics;  
  11.  
  12. Font myPrintFont=this.richTextBox1.Font;  
  13.  
  14. //計(jì)算一頁(yè)行數(shù)  
  15.  
  16. float iLinePage=  
  17. e.MarginBounds.Height/myPrintFont.GetHeight(myGraphics);  
  18.  
  19. int iLineNumber=0;//打印行數(shù)  
  20.  
  21. float fyPosition=0;//打印時(shí)的縱坐標(biāo)  
  22.  
  23. float fMarginLeft=e.MarginBounds.Left;//紙頁(yè)面左邊界  
  24.  
  25. float fMarginTop=e.MarginBounds.Top;  
  26.  
  27. string strLine="";  
  28.  
  29. while ((iLineNumber<iLinePage)&&(strLine=myReader.ReadLine())!=null)  
  30.  
  31. {  
  32.  
  33. fyPosition=fMarginTop+iLineNumber*myPrintFont.GetHeight(myGraphics);  
  34.  
  35. myGraphics.DrawString(strLine,myPrintFont,  
  36. new SolidBrush(Color.Black),fMarginLeft,  
  37. fyPosition,new StringFormat());  
  38.  
  39. iLineNumber++;  
  40.  
  41. }  
  42.  
  43. if (strLine!=null)  
  44.  
  45. {  
  46.  
  47. e.HasMorePages=true;  
  48.  
  49. }  
  50.  
  51. else 
  52.  
  53. {  
  54.  
  55. e.HasMorePages =false;  
  56.  
  57. }  
  58.  
  59. }  

C#打印文檔之頁(yè)面設(shè)置菜單(mnPageSetup):

  1. PageSetupDialog mypgDialog=new PageSetupDialog();  
  2.  
  3. mypgDialog.Document =this.MyPrintDC;  
  4.  
  5. try 
  6.  
  7. {  
  8.  
  9. mypgDialog.ShowDialog();  
  10.  
  11. }  
  12.  
  13. catch 
  14.  
  15. {  
  16.  
  17. this.MyPrintDC.PrintController.OnEndPrint(  
  18. this.MyPrintDC,new System.Drawing.Printing.PrintEventArgs());  
  19.  
  20. }  

C#打印文檔之打印預(yù)覽菜單(mnPrintView):

  1. PrintPreviewDialog myptViewDialog=new PrintPreviewDialog();  
  2.  
  3. myptViewDialog.Document =this.MyPrintDC;  
  4.  
  5. try 
  6.  
  7. {  
  8.  
  9. myptViewDialog.ShowDialog();  
  10.  
  11. }  
  12.  
  13. catch 
  14.  
  15. {  
  16.  
  17. this.MyPrintDC.PrintController.OnEndPrint(  
  18. this.MyPrintDC,new System.Drawing.Printing.PrintEventArgs());  
  19.  
  20. }  
  21.  
  22. 打印菜單(mnPrint):  
  23.  
  24. PrintDialog ptDialog=new PrintDialog();  
  25.  
  26. ptDialog.Document =this.MyPrintDC;  
  27.  
  28. if (ptDialog.ShowDialog()==DialogResult.OK)  
  29.  
  30. {  
  31.  
  32. try 
  33.  
  34. {  
  35.  
  36. this.MyPrintDC.Print();  
  37.  
  38. }  
  39.  
  40. catch 
  41.  
  42. {  
  43.  
  44. this.MyPrintDC.PrintController.OnEndPrint(  
  45.  
  46. this.MyPrintDC,new System.Drawing.Printing.PrintEventArgs());  
  47.  
  48. }  
  49.  
  50. }  

C#打印文檔之復(fù)制菜單(mnCopy):

  1. if (this.richTextBox1.SelectedText!="")  
  2.  
  3. {  
  4.  
  5. Clipboard.SetDataObject(this.richTextBox1.SelectedText);  
  6.  
  7. this.mnCopy.Enabled =false;  
  8.  
  9. this.mnCut.Enabled =false;  
  10.  
  11. this.mnPaste.Enabled =true;  
  12.  
  13. }  

C#打印文檔之剪切菜單(mnCut):

  1. if (this.richTextBox1.SelectedText!="")  
  2.  
  3. {  
  4.  
  5. Clipboard.SetDataObject(this.richTextBox1.SelectedText);  
  6.  
  7. this.richTextBox1.SelectedText ="";  
  8.  
  9. this.mnCopy.Enabled =false;  
  10.  
  11. this.mnCut.Enabled =false;  
  12.  
  13. this.mnPaste.Enabled =true;  
  14.  
  15. }  

C#打印文檔之粘貼菜單(mnPaste):

  1. IDataObject d=Clipboard.GetDataObject();  
  2.  
  3. this.richTextBox1.SelectedText =(string)d.GetData(DataFormats.Text);  

C#打印文檔之查找菜單(mnSearch):

  1. f.Show(); 

C#打印文檔之富文本框richTextBox1的文件選擇改變事件(SelectionChanged)

  1. if (this.richTextBox1.SelectedText!="")  
  2.  
  3. {  
  4.  
  5. this.mnCut.Enabled =true;  
  6.  
  7. this.mnCopy.Enabled =true;  
  8.  
  9. }  
  10.  
  11. else 
  12.  
  13. {  
  14.  
  15. this.mnCut.Enabled =false;  
  16.  
  17. this.mnCopy.Enabled =false;  
  18.  
  19. this.mnPaste.Enabled =true;  
  20.  
  21. }  

C#打印文檔4.Form2中的代碼:

定義一個(gè)整型變量:

  1. private int findPlace=0; 

命令按鈕"查找下一個(gè)"代碼

  1. if (this.txtSearch.Text !="")  
  2.  
  3. {  
  4.  
  5. Form1 mainform=(Form1)this.Owner;  
  6.  
  7. if (mainform.richTextBox1.Text.Length>0)  
  8.  
  9. {if(  
  10. (this.findPlace=  
  11. mainform.richTextBox1.Text.IndexOf(  
  12. this.txtSearch.Text,this.findPlace))==-1)  
  13.  
  14. {  
  15.  
  16. MessageBox.Show("沒(méi)有找到!");  
  17.  
  18. this.findPlace =0;  
  19.  
  20. }  
  21.  
  22. else 
  23.  
  24. {mainform.richTextBox1.Select(  
  25. this.findPlace,this.txtSearch.Text.Length);  
  26.  
  27. this.findPlace=  
  28. this.findPlace+this.txtSearch.Text.Length;  
  29.  
  30. mainform.Activate();  
  31.  
  32. }  
  33. }  
  34. }  

命令按鈕"取消"代碼:

  1. this.Hide();  
  2.  
  3. this.Owner.Show();  

C#打印文檔的實(shí)際操作和具體的步驟就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C#打印文檔的實(shí)現(xiàn)有所幫助。

【編輯推薦】

  1. .NET Framework概念及開(kāi)發(fā)淺析
  2. C#實(shí)現(xiàn)打印功能實(shí)例詳解
  3. 淺析C#打印和C#打印預(yù)覽的實(shí)現(xiàn)
  4. 全面解析C#實(shí)現(xiàn)打印功能
  5. 實(shí)現(xiàn)C#打印窗體實(shí)例詳解
責(zé)任編輯:仲衡 來(lái)源: 百度空間
相關(guān)推薦

2009-08-26 09:22:44

C#實(shí)現(xiàn)打印功能

2009-08-26 11:07:36

C#打印窗體

2009-08-26 13:22:24

C#打印程序

2009-08-26 12:59:08

C#打印設(shè)置

2009-08-21 10:13:02

C#異步初步

2009-08-26 11:53:56

C#打印文本文件

2009-09-09 12:55:59

C# TextBox事

2009-08-26 12:14:44

C#打印設(shè)置

2009-09-04 14:14:55

C#文檔

2009-08-20 11:01:51

C#操作內(nèi)存

2009-09-11 12:31:52

C#實(shí)例詳解TypeConvert

2009-08-18 10:14:19

C#插件構(gòu)架

2009-09-02 17:12:06

C#關(guān)機(jī)代碼

2009-09-01 13:51:51

C#創(chuàng)建Word文檔

2009-09-01 13:13:28

C#打開(kāi)Word文檔

2009-08-12 15:26:38

C#讀取XML文檔

2009-08-28 17:34:14

讀取word文檔

2009-08-26 09:54:45

C#打印預(yù)覽C#打印

2009-08-26 14:31:08

C#打印文件

2009-09-04 18:09:12

C# Main函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)