Add-In+C#二次开发,删除要素

来源:互联网 发布:oracle数据库建表 编辑:程序博客网 时间:2024/05/16 00:47

刚参加工作不久,经验无从谈起,在工作遇到各种问题,有时候可能是一个很简单的问题或是简单的功能实现,然而并不是想象中的简单,例如前段时间写一个Add-In+C#删除要素的功能。

开始以为通过Ilayer、IFeature、IFeatureClass等接口遍历出要删除的一个要素或是几个要素,然而并没有成功,只是实现了遍历要素并且找出来,放进Model中,试着用Feature.Delete ()就可以了。。。但是每次点击运行的时候,错误出现了,貌似是范围超限,没有权限删除(大概就是这个意思),在网上找了大半天,好多都是说的直接.Delete(),试试也不行。就琢磨着在ArcGis中删除要素好像还要打开编辑器呢,不然删除要素按钮是灰色的,于是就尝试着在功能中写了几行打开编辑器的代码,OK了!

      try                                {                                    //DeleteIsolatepointModel model = new DeleteIsolatepointModel();                                    //model.OID = ponelayerFeature.OID;                                    //model.LayerName = onelayer;                                    //model.Tyep = onelayertype;                                    //pDeleteIsolatepointModels.Add(model);                                    var pDataset = poneFeatureClass as IDataset;                                    IWorkspace pWorkspace = pDataset.Workspace;                                    IWorkspaceEdit pWorkspaceEdit = (IWorkspaceEdit)pWorkspace;                                   //启动编辑会话                                    pWorkspaceEdit.StartEditing(false);                                    //启动编辑操作                                    pWorkspaceEdit.StartEditOperation();                                    ponelayerFeature .Delete();                                    pWorkspaceEdit.StopEditOperation();                                    pWorkspaceEdit.StopEditing(true);                                }                                catch (Exception exception)                                {                                    var dfgh = "";                                }

1 0
原创粉丝点击