成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

C#打印文檔操作方式:

C#打印文檔1.新建一個項目

項目中有兩個form(Form1,Form2)

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

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

菜單項有:

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

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

關(guān)于(mnAbout)

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

查找內(nèi)容,文本(txtSearch),命令按鈕(btnSearch) 查找一下個,命令按鈕(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窗體中定義一個方法CheckSave ()

  1. private void CheckSave()  
  2.  
  3. {  
  4.  
  5. if (this.richTextBox1.Text!="")  
  6.  
  7. {  
  8.  
  9. if (MessageBox.Show("是否保存當(dāng)前文件?","確認",  
  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#打印文檔之打開菜單(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 ="打開文件";  

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. //打印文檔打印頁面事件代碼  
  7.  
  8. this.myReader=new StringReader(this.richTextBox1.Text);//定義字符讀流  
  9.  
  10. Graphics myGraphics=e.Graphics;  
  11.  
  12. Font myPrintFont=this.richTextBox1.Font;  
  13.  
  14. //計算一頁行數(shù)  
  15.  
  16. float iLinePage=  
  17. e.MarginBounds.Height/myPrintFont.GetHeight(myGraphics);  
  18.  
  19. int iLineNumber=0;//打印行數(shù)  
  20.  
  21. float fyPosition=0;//打印時的縱坐標(biāo)  
  22.  
  23. float fMarginLeft=e.MarginBounds.Left;//紙頁面左邊界  
  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#打印文檔之頁面設(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中的代碼:

定義一個整型變量:

  1. private int findPlace=0; 

命令按鈕"查找下一個"代碼

  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("沒有找到!");  
  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#打印文檔的實際操作和具體的步驟就向你介紹到這里,希望對你了解和學(xué)習(xí)C#打印文檔的實現(xiàn)有所幫助。

【編輯推薦】

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

2009-08-26 09:22:44

C#實現(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-08-18 10:14:19

C#插件構(gòu)架

2009-08-20 11:01:51

C#操作內(nèi)存

2009-09-11 12:31:52

C#實例詳解TypeConvert

2009-09-04 14:14:55

C#文檔

2009-09-01 13:51:51

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

2009-08-12 15:26:38

C#讀取XML文檔

2009-09-01 13:13:28

C#打開Word文檔

2009-09-02 17:12:06

C#關(guān)機代碼

2009-08-26 09:54:45

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

2009-08-28 17:34:14

讀取word文檔

2009-08-26 14:31:08

C#打印文件

2009-08-28 13:12:56

C#反射實例C#反射
點贊
收藏

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

主站蜘蛛池模板: 久久精品小短片 | 国产激情视频网站 | 亚洲激情在线视频 | 日韩一区二区三区视频 | 成人影视网 | 日韩中文字幕一区 | 免费在线播放黄色 | 天天射影院 | 亚洲国产成人精品女人久久久 | 欧美一区在线视频 | 久久国产精品免费一区二区三区 | 99精品欧美一区二区三区综合在线 | 午夜精品一区二区三区三上悠亚 | 干干天天| www.久久久久久久久 | 午夜视频免费在线观看 | 国产精品日韩一区二区 | 国产毛片久久久久久久久春天 | 欧美一区二区在线 | 成人亚洲视频 | 欧产日产国产精品视频 | 久久综合狠狠综合久久综合88 | 男女污污动态图 | 国产精品精品久久久 | 人成久久 | 免费黄网站在线观看 | 亚洲一区二区久久久 | 麻豆久久久9性大片 | 国产午夜精品久久久久 | 欧美成人免费在线视频 | 国产亚洲二区 | 久久精品免费 | 国产98色在线 | 日韩 | 成人三级在线观看 | 国产免费拔擦拔擦8x高清 | 免费视频一区二区 | 欧美日韩一区二区在线观看 | 欧美高清性xxxxhdvideosex | 久久一级大片 | 日韩成人av在线 | 久久精品国产免费看久久精品 |