ArcGis 中MapControl 框选

void mCtrl_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
        {
            #region 框选
            
            
            if (e.button == 4)
            {
                IEnvelope pEnvelope = mCtrl.TrackRectangle();  // 通过鼠标,取得一个包络线对象
                ISelectionEnvironment pSelectionEnv = new SelectionEnvironmentClass();  // 设置一个新环境
                pSelectionEnv.DefaultColor = MapHelper.GetRGBColor(Color.Red);     // 再改变原来要素的眼神值
                mCtrl.Map.SelectByShape(pEnvelope, pSelectionEnv, false);
                mCtrl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);                 ISelection selection = mCtrl.Map.FeatureSelection;
                IEnumFeatureSetup enumFeatureSetup = selection as IEnumFeatureSetup;    //这里很必要
                enumFeatureSetup.AllFields = true;                                      //这里很必要
                IEnumFeature enumFeature = enumFeatureSetup as IEnumFeature;
                enumFeature.Reset();
                IFeature feature = enumFeature.Next();                 IFeatureLayer pFeatureLayer = (IFeatureLayer)mCtrl.get_Layer(currentLayerIndex);
                IFeatureClass pFeatureClass = (IFeatureClass)pFeatureLayer.FeatureClass;                 int fLCDIdx = pFeatureClass.FindField(fieldName);
                lbFields.Items.Clear();
                while (feature != null)
                {
                    var _lcd = feature.get_Value(fLCDIdx);
                    long lcd = Convert.ToInt64(_lcd);
                    lbFields.Items.Add(lcd);
                    feature = enumFeature.Next();
                }
            }
                         #endregion             mCtrl.Refresh(esriViewDrawPhase.esriViewForeground, Type.Missing, Type.Missing);
        }
上一篇:MySQL对于数据库应该如何如何配置安全问题了


下一篇:SQL AlawaysOn 之三:SQL服务器加入域