当启动了工具并且选择了多个元素后,再单击鼠标右键,只会依次取消上一次选择的元素,并不会直接退出工具,知道所有所有元素都被取消选择后才会退出工具。
如下动图所示:
代码如下:
class TestDgnElementSetTool : DgnElementSetTool { public static void InstallNewInstance(string unparsed) { TestDgnElementSetTool newInstance = new TestDgnElementSetTool(); newInstance.InstallTool(); } protected override void OnPostInstall() { BeginPickElements(); AccuSnap.SnapEnabled = false; } public override StatusInt OnElementModify(Element element) { return StatusInt.Error; } protected override void OnRestartTool() { ExitTool(); } protected override bool OnDataButton(DgnButtonEvent ev) { bool result = base.OnDataButton(ev); return result; } // 启动工具时取消选择集内容 protected override UsesSelection AllowSelection() { return UsesSelection.None; }// // 框选或者划选 protected override UsesDragSelect AllowDragSelect() { return UsesDragSelect.None; } //允许选择参考文件中的元素 protected override bool IsModifyOriginal() { return false; } // protected override bool WantAdditionalLocate(DgnButtonEvent ev) { return true; } }
因为基类的OnResetButton函数中封装了右键重定位的功能,只有右键重定位的时候定位不到新的元素才会触发OnRestartTool函数。
可以避开这个重定位功能吗?
重写OnResetButton函数
Answer Verified By: 巴燕 史
是我把OnRestartTool和OnResetButton搞混了……