Example #1
0
        /// <summary>
        /// 点击事件
        /// </summary>
        public override void OnClick()
        {
            IFeature     pFeature;
            IEnumFeature pEnumFeature;

            // Get a cursor on selected features
            IFeatureCursor cursor = null;

            pEnumFeature = DataEditCommon.g_pAxMapControl.Map.FeatureSelection as IEnumFeature;

            IFeatureLayer feaLayer = DataEditCommon.g_pLayer as IFeatureLayer;

            //pEnumFeature = DataEditCommon.g_engineEditor.EditSelection;
            //int selectionCnt = DataEditCommon.g_engineEditor.SelectionCount;
            //// 没有选中任何图形
            //if (selectionCnt <= 0)
            //{
            //    return;
            //}

            if (pEnumFeature == null)
            {
                return;
            }
            pEnumFeature.Reset();
            pFeature = pEnumFeature.Next();
            if (pFeature == null)
            {
                System.Windows.Forms.MessageBox.Show("请先选择要删除的图元!");
                return;
            }
            DataEditCommon.InitEditEnvironment();
            DataEditCommon.CheckEditState();
            DataEditCommon.g_engineEditor.StartOperation();
            //DataEditCommon.g_CurWorkspaceEdit.StartEditOperation();
            do
            {
                int    iFieldBID = pFeature.Fields.FindField(GIS_Const.FIELD_OBJECTID);//图层中对应绑定ID字段
                string sObjId    = pFeature.get_Value(iFieldBID).ToString();

                //pFeature.Delete();
                //RefreshModifyFeature((IObject)pFeature);

                DataEditCommon.DeleteFeatureByObjectId(feaLayer, sObjId);
                RefreshModifyFeature((IObject)pFeature);

                pFeature = pEnumFeature.Next();
            }while (pFeature != null);
            //DataEditCommon.g_CurWorkspaceEdit.StopEditOperation();
            DataEditCommon.g_engineEditor.StopOperation("Delete Feature");
            DataEditCommon.g_pMap.ClearSelection();
            DataEditCommon.g_pMyMapCtrl.ActiveView.Refresh();
        }