ArcEngine二次开发时,如何在AxSceneControl中清除所选。C#代码实现工具,点击清除场景中所选的要素。一开始想要调用ICommand 接口,调用工具命令,以为可以跟二维开发时一样,于是写的代码如下:
axSceneControlMain.CurrentTool = null;
ICommand pCommand = new ESRI.ArcGIS.Controls.ControlsClearSelectionCommandClass();
pCommand.OnCreate(axSceneControlMain.Object);
pCommand.OnClick();
但是发现并没有效果,而且会报错,如图所示。
关键是该接口中也只有一个与清除选择有关的就是ControlsClearSelectionCommandClass()。既然这个报错,那究竟是为什么呢?
后来终于发现,其实在AxSceneControl中定义了专门的清除所选要素方法,并不是封装在ICommand接口中的,直接这样写就可以了:
????????????axSceneControlMain.CurrentTool = null;
this.axSceneControlMain.Scene.ClearSelection();///////////与二维不同
axSceneControlMain.SceneGraph.RefreshViewers();
最后来个刷新。
这样就可以啦。点击按钮,清除选择。效果很棒!