非静态的字段、方法或属性“System.Drawing.Printing.PrintDocument.Print()”要求对象引用

问题描述

我在看《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;}}}}

时间: 2024-07-30 17:05:40

非静态的字段、方法或属性“System.Drawing.Printing.PrintDocument.Print()”要求对象引用的相关文章

非静态的字段、方法或属性“System.Configuration.Install.Installer.Installers????

问题描述 usingSystem;usingSystem.Diagnostics;usingSystem.ComponentModel;usingSystem.Configuration.Install;usingSystem.Configuration;namespaceEventLogSourceInstaller{[RunInstaller(true)]publicclassMyEventLogInstaller:Installer{publicstaticEventLogInstalle

非静态的字段、方法或属性“ESRI.ArcGIS.Carto.IMapDocument.DocumentFilename.get”要求对象引用

问题描述 请出现这种错误是为什么呢该如何改正呢usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingESRI.ArcGIS.ADF;usingESRI.ArcGIS.SystemUI;usingESRI.ArcGIS.Geometry;usi

字段初始值设定项无法引用非静态字段 方法或属性

问题描述 请问,定义这个sum变量时候,为什么不能访问english与math变量但是在下面的方法中却可以访问english与math变量,请问这个是为什么.谢谢 解决方案 解决方案二:http://www.cnblogs.com/bluestorm/p/3432190.html解决方案三:上面是类成员定义,下面是变量定义,含义完全不同解决方案四:定义在类下面的全局变量,实际上是在类的构造函数里面初始化的因为math和english还没有初始化值,所以就无法在别的地方使用(C#规定的)你写的相当

C#静态和非静态的方法

C#的类定义中可以包含两种方法:静态和非静态的.使用了static修饰符的方法为静态方法,反之则是非静态的. 静态方法是一种特殊的成员方法,它不属于类的某一个具体的实例.非静态方法可以访问类中的任何成员,而静态只能访问类中的静态成员.看这个例子: class A { int x; static int y; static int F(){ x=1; //错误,不允许访问 y=2; //正确,允许访问 } 在这个类定义中,静态方法F()可以访问类中静态成员y,但不能访问非静态成员x.这是因为,x作

错误 1 非静态字段、方法或属性“Program.Program.myint”要求对象引用

问题描述 usingSystem;namespaceProgram{classProgram{intmyint=500;staticvoidMain(){Console.WriteLine("{0,10}",myint);}}}这段代码错在哪里了,提示如标题的错误. 解决方案 解决方案二:staticintmyint=500;解决方案三:usingSystem;namespaceProgram{classProgram{staticintmyint=500;staticvoidMain

C# 静态属性能否读写非静态字段?非静态属性能否读写静态字段?

问题描述 ①静态属性只能读写静态字段吗?能否读写非静态字段?②非静态属性能否读写静态字段?③静态字段可以通过静态属性赋值吗? 解决方案 本帖最后由 syncsdn9 于 2016-03-23 13:44:12 编辑解决方案二:①静态属性能读写非静态字段,前提是能获取到对象②非静态属性当然能读写静态字段③静态字段当然可以通过静态属性赋值解决方案三:都可以的,静态属性调用非静态时需要对像的引用.

既然非静态构造函数里可以对静态字段赋值,那还要静态构造函数干嘛?

问题描述 既然非静态构造函数里可以对静态字段赋值,那还要静态构造函数干嘛?难道是为了在本类被实例化之前就可以使用静态字段吗? 解决方案 本帖最后由 syncsdn9 于 2016-03-23 16:29:23 编辑解决方案二:你没见过不需要实例化就能用的类吗?比如System.Array解决方案三:静态构造函数是你在调用这个函数的任何方法.属性(尤其是static的)之前执行,非静态构造函数是在new的时候才执行,这能一样吗?解决方案四:你最后句话还真说对了,静态字段与实例无关,不需要实例化就可

static-无法从静态上下文中引用非静态 方法问题怎么解决?

问题描述 无法从静态上下文中引用非静态 方法问题怎么解决? 10C 以下代码老是提示Error:(68 36) 错误: 无法从静态上下文中引用非静态 方法 getImage(String),怎么解决? public class ImageService { // 获取网络图片的数据 public static byte[] getImage(String picturepath) throws Exception { URL url = new URL(picturepath); HttpURL

java语法-java中如何在其他方法的方法体里面初始化一个非静态public方法

问题描述 java中如何在其他方法的方法体里面初始化一个非静态public方法 java中如何在其他方法的方法体里面初始化一个非静态public方法 如何判断一个方法是不是静态方法, 解决方案 方法里面弄方法,,那是匿名类用的,,除此之外一般没这么用