基于ArcGIS Engine+C#的二次开发---电子校园管理信息系统(1)

本文作者分享了基于ArcGIS Engine和C#进行电子校园管理信息系统二次开发的经验,通过一个月的努力成功完成系统,并提供了源代码和视频演示链接,旨在帮助初级开发者解决问题。
摘要由CSDN通过智能技术生成

  本人也是一名二次开发的菜鸟级孩子,经过一个月的挑灯夜战终于搞定了一个小系统,过程中遇到很多小问题,特此将详细代码发帖,希望对后面的小菜鸟们有帮助,系统视频演示地址:http://v.youku.com/v_show/id_XNjE4NzM4MzI0.html

首先是新建工程,然后新建第一个Windows窗体Form1.下面是Form1.cs的源代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Collections;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.GeoDatabaseExtensions;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.DataSourcesFile;
using ESRI.ArcGIS.DataSourcesRaster;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.Output;
using ESRI.ArcGIS.ADF;
using ESRI.ArcGIS.Analyst3D;
using ESRI.ArcGIS.DataSourcesGDB;
using MapAndPageLayoutSynchApp;

namespace GoodMap
{
    public partial class Form1 : Form
    {
        #region class private members
        private bool flag;
        private string strTitle;
        private Font strFont;
        private Color strColor;
        private MapSurround  m_MapSurround;
        private MapLoad m_MapLoad;
        private ESRI.ArcGIS.Controls.IMapControl3 m_mapControl = null;
        private ESRI.ArcGIS.Controls.IPageLayoutControl2 m_pageLayoutControl = null;
        private ControlsSynchronizer m_controlsSynchronizer = null;
        #endregion
       
        public ILayer pMoveLayer;//需要被调整的图层;
        public int toIndex;//将要调整到的目标图层的索引;
        public ILayer pselectLayer;
        //当前点移动反馈对象
        IMovePointFeedback m_MovePointFeedback = new MovePointFeedbackClass();
        //当前线移动反馈对象
        IMoveLineFeedback m_MoveLineFeedback = new MoveLineFeedbackClass();
        //当前面移动反馈对象
        IMovePolygonFeedback m_MovePolygonFeedback = new MovePolygonFeedbackClass();
        private esriTOCControlItem toccItem = esriTOCControlItem.esriTOCControlItemNone;
        private IBasicMap pBasicMap = null;
        public ILayer p_Layer=null;
        System.Object unk = null;
        System.Object data = null;  

        public bool frmAttriQueryisOpen = false;      //用于按属性查询
        public bool frmLocationisOpen = false;      //用于按位置查询
        public bool frmQuickFindisOpen = false;    //用于快速查找


        #region class constructor
        public Form1()
        {
            InitializeComponent();
            m_MapSurround=new MapSurround();
            m_MapLoad = new MapLoad();
            m_mapControl = (IMapControl3)this.axMapControl1.Object;
            m_pageLayoutControl = (IPageLayoutControl2)this.axPageLayoutControl1.Object;
           //初始化controls synchronization calss
            m_controlsSynchronizer = new ControlsSynchronizer(m_mapControl, m_pageLayoutControl);
           //把MapControl和PageLayoutControl绑定起来(两个都指向同一个Map),然后设置MapControl为活动的Control
           m_controlsSynchronizer.BindControls(true);
           //为了在切换MapControl和PageLayoutControl视图同步,要添加Framework Control
         //  m_controlsSynchronizer.AddFrameworkControl(axToolbarControl1.Object);
           m_controlsSynchronizer.AddFrameworkControl(this.axTOCControl1.Object);

        }
        #endregion
        public string StrTitle
        {
            get
            { return strTitle; }
            set
            { strTitle = value;  }
        }


        public Font StrFont
        {
            get
            { return strFont;}
            set
            { strFont = value;  }
        }


        public Color StrColor
        {
            get
            { return strColor;  }
            set
            {strColor = value;   }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
           
            axTOCControl2.SetBuddyControl(axMapControl1);
            flag = false;
        }
        #region  基础操作
        //新建地图文档
        private void OpenDoc_Click(object sender, EventArgs e)
        {
            try
            {
                m_MapLoad.OperateMapDoc(axMapControl1, axMapControl2, "NewDoc");
                axPageLayoutControl1.Refresh();
            }
            catch(Exception)
            {
                MessageBox.Show("新建地图无效!");
            }
        }
       //打开地图文档
        private void opensxdmap_Click(object sender, EventArgs e)
        {
            try
            {
                m_MapLoad.OperateMapDoc(axMapControl1, axMapControl2, "OpenDoc");
                //loadMapDocument();
               // MessageBox.Show("保存地图成功!");
            }
            catch(Exception)
            {
                MessageBox.Show("打开地图失败!");
            }
        }
        //保存地图文档
        private void SaveSXDDoc_Click(object sender, EventArgs e)
        {
            try 
            {
                m_MapLoad.OperateMapDoc(axMapControl1, axMapControl2, "SaveDoc");
              //  MessageBox.Show("保存地图成功!"); 
            }
            catch (Exception)
            {
                MessageBox.Show("保存地图失败!"); 
            }
           
        }
        //另存地图文档
        private void SaveAs_Click(object sender, EventArgs e)
        {
            try
            {
                m_MapLoad.OperateMapDoc(axMapControl1, axMapControl2, "SaveDocAs");
            }
            catch (Exception)
            {
                MessageBox.Show("另存地图失败!");
            }
        }
       //添加XYZ数据
        private void AddXYZ_Click(object sender, EventA
  • 7
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值