鼠标在MapControl中框选要素

来源:互联网 发布:jsp订餐系统源码 编辑:程序博客网 时间:2024/05/18 00:52

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.Geometry;

namespace 选择元素
{
    publicpartial class Form1 : Form
    {
       public Form1()
       {
           InitializeComponent();
       }

       //定义颜色方法
       private IRgbColor GetRGB(int r, int g, int b)
       {
           IRgbColor pRgbColor = new RgbColorClass();  //利用IRgbColor 接口,分别设置R、G、B三个值参数
           pRgbColor.Red = r;
           pRgbColor.Green = g;
           pRgbColor.Blue = b;
           return pRgbColor;   //返回对象值
       }

       private void axMapControl1_OnMouseDown(object sender,ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
       {
           IMap pMap;
           IActiveView pActiveView;
           pMap = axMapControl1.Map;
           pActiveView = pMap as IActiveView;
           IEnvelope pEnvelope =axMapControl1.TrackRectangle();  //通过鼠标,取得一个包络线对象
           ISelectionEnvironment pSelectionEnv = newSelectionEnvironmentClass();  // 设置一个新环境
           pSelectionEnv.DefaultColor = GetRGB(110, 120,210);    // 再改变原来要素的眼神值
           pMap.SelectByShape(pEnvelope, pSelectionEnv, false);
           pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection,null, null);
       }
    }
}