问题描述
我在看《c#入门经典2005》这本书,看到16章16.4打印部分,按照书上的方法,作了一个例子,但运行时出现错误信息"错误1非静态的字段、方法或属性“System.Drawing.Printing.PrintDocument.Print()”要求对象引用D:VisualStudio2005c#入门经典例子源码578472_Chapter16578472_Chapter16SimpleEditorSimpleEditorSimpleEditorForm.cs10317SimpleEditor",而且添加的打印菜单项看不见,希望老师指教.原程序:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.IO;usingSystem.Drawing.Printing;namespaceSimpleEditor{//publicdelegatevoidPrintPageEventHandler(objectsender,PrintPageEventArgse);publicpartialclassSimpleEditorForm:Form{privatestringfilename="Untitled";publicSimpleEditorForm(stringfilename){InitializeComponent();if(filename!=null){this.filename=filename;OpenFile();}}protectedvoidOpenFile(){try{textBoxEdit.Clear();textBoxEdit.Text=File.ReadAllText(filename);}catch(IOExceptionex){MessageBox.Show(ex.Message,"SimpleEditor",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);}}privatevoidOnFileNew(objectsender,EventArgse){filename="Untitled";setFormTitle();textBoxEdit.Clear();}privatevoidOnFileOpen(objectsender,EventArgse){if(dlgOpenFile.ShowDialog()==DialogResult.OK){filename=dlgOpenFile.FileName;setFormTitle();OpenFile();}}privatevoidOnFileSave(objectsender,EventArgse){if(filename=="Untitled"){OnFileSaveAs(sender,e);}else{SaveFile();}}privatevoidOnFileSaveAs(objectsender,EventArgse){if(dlgSaveFile.ShowDialog()==DialogResult.OK){filename=dlgSaveFile.FileName;setFormTitle();SaveFile();}}protectedvoidSaveFile(){try{File.WriteAllText(filename,textBoxEdit.Text);}catch(IOExceptionex){MessageBox.Show(ex.Message,"simpleEditor",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);}}protectedvoidsetFormTitle(){FileInfofileinfo=newFileInfo(filename);this.Text=fileinfo.Name+"-SimpleEditor";}privatevoidOnFilePrint(objectsender,EventArgse){try{PrintDocument.Print();}catch(InvalidPrinterExceptionex){MessageBox.Show(ex.Message,"SimpleEditor",MessageBoxButtons.OK,MessageBoxIcon.Error);}}privatevoidOnFilePrintPreview(objectsender,EventArgse){}privatevoidOnFilePageSetup(objectsender,EventArgse){}privatevoidOnExit(objectsender,EventArgse){}privatevoidOnPrintPage(objectsender,PrintPageEventArgse){char[]param={'n'};string[]lines=textBoxEdit.Text.Split(param);inti=0;char[]trimParam={'r'};foreach(stringsinlines){lines[i++]=s.TrimEnd(trimParam);}intx=20;inty=20;foreach(stringlineinlines){e.Graphics.DrawString(line,newFont("Arial",10),Brushes.Black,x,y);y+=15;}}}}