明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 和尚777

[【IFoxCAD】] 最少代码的侧边栏菜单

    [复制链接]
发表于 2025-12-4 17:53:01 | 显示全部楼层
本帖最后由 箭头_Row 于 2025-12-4 18:01 编辑
箭头_Row 发表于 2024-9-9 16:22
優化方向一:
命令可循環打開、關閉側邊欄。
優化方向二:

問題描述:
當startmode設置為0時(關閉了開始界面 ),如果關閉了所有文檔,但之前命令已經打開了界面,如果側邊欄還顯示,那麼此時執行側邊欄中命令會引發錯誤,導致CAD卡掛掉。

優化方向三:
startmode設置為0時,應該記錄其狀態,方便再次打開文檔時重新顯示側邊瘭(此問題在寫其他界面亦會遇到)

解決方法思路:加一個bool參數記錄其狀態,使用  Acaop.DocumentManager.DocumentDestroyed 事件記錄,在   Acaop.DocumentManager.DocumentActivated 事件中判斷其記錄決定 是否兩次打開界面 。
回复 支持 反对

使用道具 举报

发表于 2025-12-6 22:01:40 | 显示全部楼层
zjy2999 发表于 2025-11-27 11:33
以前发的编译的侧边栏可能错误,重新发,autocad2016可以使用

感谢分享,可以用
回复 支持 反对

使用道具 举报

发表于 2025-12-11 17:12:07 | 显示全部楼层
和尚大佬还是这么牛逼
回复 支持 反对

使用道具 举报

发表于 前天 13:43 | 显示全部楼层
箭头_Row 发表于 2025-12-4 17:53
問題描述:
當startmode設置為0時(關閉了開始界面 ),如果關閉了所有文檔,但之前命令已經打開了界面 ...

https://gilecad.azurewebsites.net/UserInterfaces_en.aspx

gile博客里給出了BUG修復方案,詳見此博客代碼。

// automatically hide the palette while none document is active (no document state)
            var docs = Application.DocumentManager;
            docs.DocumentBecameCurrent += (s, e) => Visible = e.Document == null ? false : wasVisible;
            docs.DocumentCreated += (s, e) => Visible = wasVisible;
            docs.DocumentToBeDeactivated += (s, e) => wasVisible = Visible;
            docs.DocumentToBeDestroyed += (s, e) =>
            {
                wasVisible = Visible;
                if (docs.Count == 1)
                    Visible = false;
            };
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-12-25 16:15 , Processed in 0.222861 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表