徐杳杳的飞花 2019-04-15 17:30
浏览 453

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

利用VS和ArcEngine想要写出一段代码,实现导出地图为图片的功能,以下是我在网络上找到可以实现该功能的代码,却出现了问题


```     private void 导出图片ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SaveFileDialog m_save = new SaveFileDialog();
            m_save.Filter = "jpeg图片(*.jpg)|*.jpg|tiff图片(*.tif)|*.tif|bmp图片(*.bmp)|*.bmp|emf图片(*.emf)|*.emf|png图片(*.png)|*.png|gif图片(*.gif)|*.gif";
            m_save.ShowDialog();
            string Outpath = m_save.FileName;
            if (Outpath != "")
            {
                //分辨率
>                 double resulotion =**_MapControl.ActiveView_**.ScreenDisplay.DisplayTransformation.Resolution;
                IExport m_export = null;
                if (Outpath.EndsWith(".jpg"))
                {
                    m_export = new ExportJPEG() as IExport;

                }
                else if (Outpath.EndsWith(".tig"))
                {
                    m_export = new ExportTIFF() as IExport;

                }
                else if (Outpath.EndsWith(".bmp"))
                {
                    m_export = new ExportBMP() as IExport;

                }
                else if (Outpath.EndsWith(".emf"))
                {
                    m_export = new ExportEMF() as IExport;
                }
                else if (Outpath.EndsWith(".png"))
                {
                    m_export = new ExportPNG() as IExport;
                }
                else if (Outpath.EndsWith(".gif"))
                {
                    m_export = new ExportGIF() as IExport;
                }
                //设置输出的路径
                m_export.ExportFileName = Outpath;
                //设置输出的分辨率
                m_export.Resolution = resulotion;
                tagRECT piexPound;
                piexPound = **_MapControl.ActiveView_**.ScreenDisplay.DisplayTransformation.get_DeviceFrame();
                IEnvelope m_envelope = new Envelope() as IEnvelope;
                m_envelope.PutCoords(piexPound.left, piexPound.bottom, piexPound.right, piexPound.top);
                //设置输出的IEnvelope
                m_export.PixelBounds = m_envelope;

                ITrackCancel m_trackCancel = new CancelTracker();
                //输出的方法
                **_MapControl.ActiveView_**.Output(m_export.StartExporting(), (short)resulotion, ref piexPound, **_MapControl.ActiveView_**.Extent, m_trackCancel);
                m_export.FinishExporting();
            }
        }
四个问题,都是MapControl.ActiveView的问题,代码中已加粗斜体显示,问题一致是“非静态的字段、方法或属性“ESRI.ArcGIS.Controls.IMapControlDefault.ActiveView.get”要求对象引用”的问题。
  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 求差集那个函数有问题,有无佬可以解决
    • ¥15 【提问】基于Invest的水源涵养
    • ¥20 微信网友居然可以通过vx号找到我绑的手机号
    • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
    • ¥15 解riccati方程组
    • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
    • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
    • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
    • ¥50 树莓派安卓APK系统签名
    • ¥65 汇编语言除法溢出问题