箭头_Row 发表于 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 事件中判斷其記錄決定 是否兩次打開界面 。

haisensy 发表于 2025-12-6 22:01:40

zjy2999 发表于 2025-11-27 11:33
以前发的编译的侧边栏可能错误,重新发,autocad2016可以使用

感谢分享,可以用

yang581 发表于 2025-12-11 17:12:07

和尚大佬还是这么牛逼

箭头_Row 发表于 2025-12-23 13:43:35

箭头_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;
            };
页: 1 2 3 4 [5]
查看完整版本: 最少代码的侧边栏菜单