【C# ORD】 Addin toolSetting添加后,无法启动系统自带的Toolsetting

老师们,您好,C#开发ORD UP5时遇到一个问题,自定义Toolsetting界面启动后,系统的Toolsetting(例如 选择元素)无法直接点击命令执行,必须将自定义的关掉后再启动才行,这是什么原因呢?

Parents Reply Children
  • 正常情况下是不会出现这种情况的,除非是可能碰到了新的bug或者是您的代码有问题,您可以在点击创建的的时候在原点处创建一条线看是否创建成功。

  • 一般的Form,在里面创建元素的话,只有关闭窗体才能看到创建的元素,ToolSetting点击创建后关闭窗体前就可以看到。

    肯定是您代码写得有问题,从原理上来说不应该出现这种情况。创建的元素能否被看到决定于您是否将该元素添加到了模型中(一般是通过调用AddToModel来添加的),或者通过动态在临时显示元素的。



  • 嗯,我检查下代码。回到我最初的问题,我新建一个窗口,集成Adapter,显示时AttachToToolSettings,再Show,然后再点击系统命令(选择命令等工具),有没有办法逼退我现在这个Form。我现在是先关闭form,再点击系统命令,不关闭的话无法启动系统命令。

  • ToolSettings窗口是用来显示当前交互式工具(交互式工具就是从DgnTool派生下来的工具类)需要用户输入参数时的窗体的,MSTN中同一时间只能有一个交互式工具是激活的,当启动其他工具时,当前这个工具就会被强制退出,其OnCleanup就会被调用,如果交互式工具在ToolSettings窗口显示自己的窗体时,需要在OnCleanup中卸载掉。如果您没有启动一个自己的从DgnTool派生出来的类,而直接去往ToolSettings上挂接自己的窗体,能挂接成功,但显然其他工具启动时,您的程序是没有一个机会获取到其他工具的通知,进而卸载掉自己的窗体的。

    Answer Verified By: cao li