非静态的字段、方法或属性“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;usingESRI.ArcGIS.Display;usingESRI.ArcGIS.Controls;usingESRI.ArcGIS.esriSystem;usingESRI.ArcGIS.Carto;namespaceGIS设计{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){}privatevoidMainForm_Load(objectsender,EventArgse){//将主窗体放大到整个屏幕this.Size=Screen.PrimaryScreen.WorkingArea.Size;this.Location=newSystem.Drawing.Point(0,0);//将axToolbarControl和axTOCControl与axMapControl2绑定!axToolbarControl1.SetBuddyControl(axMapControl2);axTOCControl1.SetBuddyControl(axMapControl2);}privatevoidtabControl1_TabIndexChanged(objectsender,EventArgse){}privatevoidtabControl1_SelectedIndexChanged(objectsender,EventArgse){if(tabControl1.SelectedIndex==0){axToolbarControl1.SetBuddyControl(axMapControl2);axTOCControl1.SetBuddyControl(axMapControl2);}else{axToolbarControl1.SetBuddyControl(axPageLayoutControl1);axTOCControl1.SetBuddyControl(axPageLayoutControl1);}}privatevoidopenToolStripMenuItem_Click(objectsender,EventArgse){System.Windows.Forms.OpenFileDialogopenFileDialog;openFileDialog=newOpenFileDialog();openFileDialog.Title="Open";openFileDialog.Filter="mapdocuments(*.mxd)|*.mxd";openFileDialog.ShowDialog();stringfilePath=openFileDialog.FileName;if(axMapControl2.CheckMxFile(filePath)){axMapControl2.MousePointer=esriControlsMousePointer.esriPointerHourglass;axMapControl2.LoadMxFile(filePath,0,Type.Missing);axMapControl2.MousePointer=esriControlsMousePointer.esriPointerDefault;}else{MessageBox.Show(filePath+"nousemap");}}privatevoidsaveToolStripMenuItem_Click(objectsender,EventArgse){if(MapDocument.get_IsReadOnly(MapDocument.DocumentFilename)==true){MessageBox.Show("地图文档是只读的无法保存");}stringfileSavePath=@"e:new.mxd";try{MapDocument.Save(MapDocument.UsesRelativePaths,true);MessageBox.Show("保存地图文档成功");}catch(Exceptione){MessageBox.Show("保存地图文档失败!!!"+e.ToString());}}}}错误1非静态的字段、方法或属性“ESRI.ArcGIS.Carto.IMapDocument.DocumentFilename.get”要求对象引用E:GIS作业arcgisengineGIS设计GIS设计Form1.cs8844GIS设计错误2非静态的字段、方法或属性“ESRI.ArcGIS.Carto.IMapDocument.get_IsReadOnly(string)”要求对象引用E:GIS作业arcgisengineGIS设计GIS设计Form1.cs8817GIS设计错误3非静态的字段、方法或属性“ESRI.ArcGIS.Carto.IMapDocument.UsesRelativePaths.get”要求对象引用E:GIS作业arcgisengineGIS设计GIS设计Form1.cs9535GIS设计错误4非静态的字段、方法或属性“ESRI.ArcGIS.Carto.IMapDocument.Save(bool,bool)”要求对象引用E:GIS作业arcgisengineGIS设计GIS设计Form1.cs9517GIS设计错误5不能在此范围内声明名为“e”的局部变量,因为这样会使“e”具有不同的含义,而它已在“父级或当前”范围中表示其他内容了E:GIS作业arcgisengineGIS设计GIS设计Form1.cs9830GIS设计

解决方案

解决方案二:
是从下面这一段开始出现问题上面那一段代码调试是没有问题的请问问什么这样呢privatevoidsaveToolStripMenuItem_Click(objectsender,EventArgse){if(MapDocument.get_IsReadOnly(MapDocument.DocumentFilename)==true){MessageBox.Show("地图文档是只读的无法保存");}stringfileSavePath=@"e:new.mxd";try{MapDocument.Save(MapDocument.UsesRelativePaths,true);MessageBox.Show("保存地图文档成功");}catch(Exceptione){MessageBox.Show("保存地图文档失败!!!"+e.ToString());}
解决方案三:
MapDocument如果是类的话,要改成这个类的对象
解决方案四:
看看你的ArcGIS是不是引用完全地图方法和控件是不是引用正确这几个方法是GIS封装好的你的错误5把e换成ex就行
解决方案五:
上面的问题已经解决了也可以调试但是我点击Save的时候在红色字体代码那里出现了下面的图片上的错误是什么原因呢System.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingESRI.ArcGIS.ADF;usingESRI.ArcGIS.SystemUI;usingESRI.ArcGIS.Geometry;usingESRI.ArcGIS.Display;usingESRI.ArcGIS.Controls;usingESRI.ArcGIS.esriSystem;usingESRI.ArcGIS.Carto;namespaceGIS设计{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){}privatevoidMainForm_Load(objectsender,EventArgse){//将主窗体放大到整个屏幕this.Size=Screen.PrimaryScreen.WorkingArea.Size;this.Location=newSystem.Drawing.Point(0,0);//将axToolbarControl和axTOCControl与axMapControl2绑定!axToolbarControl1.SetBuddyControl(axMapControl2);axTOCControl1.SetBuddyControl(axMapControl2);}privatevoidtabControl1_TabIndexChanged(objectsender,EventArgse){}privatevoidtabControl1_SelectedIndexChanged(objectsender,EventArgse){if(tabControl1.SelectedIndex==0){axToolbarControl1.SetBuddyControl(axMapControl2);axTOCControl1.SetBuddyControl(axMapControl2);}else{axToolbarControl1.SetBuddyControl(axPageLayoutControl1);axTOCControl1.SetBuddyControl(axPageLayoutControl1);}}privatevoidopenToolStripMenuItem_Click(objectsender,EventArgse){System.Windows.Forms.OpenFileDialogopenFileDialog;openFileDialog=newOpenFileDialog();openFileDialog.Title="Open";openFileDialog.Filter="mapdocuments(*.mxd)|*.mxd";openFileDialog.ShowDialog();stringfilePath=openFileDialog.FileName;if(axMapControl2.CheckMxFile(filePath)){axMapControl2.MousePointer=esriControlsMousePointer.esriPointerHourglass;axMapControl2.LoadMxFile(filePath,0,Type.Missing);axMapControl2.MousePointer=esriControlsMousePointer.esriPointerDefault;}else{MessageBox.Show(filePath+"nousemap");}}IMapDocumentmapDocument;privatevoidsaveToolStripMenuItem_Click(objectsender,EventArgse){mapDocument=newMapDocumentClass();if(mapDocument.get_IsReadOnly(mapDocument.DocumentFilename)==true){MessageBox.Show("地图文档是只读的无法保存");}try{mapDocument.Save(mapDocument.UsesRelativePaths,true);MessageBox.Show("保存地图文档成功");}catch(Exceptionex){MessageBox.Show("保存地图文档失败!!!"+ex.ToString());}}}}
解决方案六:
最后的问题楼主解决了吗?遇到同样的问题了
解决方案七:
因为少了一段代码,mapDocument还没有和文件相关联

时间: 2024-09-30 06:28:10

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

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

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

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

问题描述 我在看<c#入门经典2005>这本书,看到16章16.4打印部分,按照书上的方法,作了一个例子,但运行时出现错误信息"错误1非静态的字段.方法或属性"System.Drawing.Printing.PrintDocument.Print()"要求对象引用D:VisualStudio2005c#入门经典例子源码578472_Chapter16578472_Chapter16SimpleEditorSimpleEditorSimpleEditorForm.c

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

问题描述 请问,定义这个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方法 如何判断一个方法是不是静态方法, 解决方案 方法里面弄方法,,那是匿名类用的,,除此之外一般没这么用