以上的格式和形狀菜單項中的操作也是通過Application.DoCmd((short)commandID);函數實現的,只要查詢到相應的命令ID即可進行調用,你花點時間看看VisUICmds枚舉下都有那些命令ID可以調用就可以了。以上圖片中關於右鍵菜單的操作,請參考我前面寫的一篇文章C#進行Visio二次開發之自定義右鍵菜單 再來說說軟件的架構設計吧。整個UI層主要應用了前面介紹過的WeifenLuo.WinFormsUI.Docking.dll的控件(即圖中的DockingControl組件),還有就是Visio Drawing Control的OCX控件了(圖中的VisioOCX組件)。兩邊是各個層中用到的通用類(Commons)和實體類(Entity)。
Visio的二次開發,除了需要操作Visio的文件(包含多個模具文件,Viso文檔)還有就是也需要和數據庫打交道(沒有數據庫的程序會遜色很多的)。為了較好區分和協調他們的訪問,我設定了一個訪問邊界:訪問數據庫的層不會訪問Visio文件對象,訪問Visio文件對象的不會去訪問數據庫,它們統一由業務層(Business)調配,各層之間分享Entity層的信息即可。數據庫的底層訪問通過利用Enterprise Library的模塊完成,因此DAL層只需要做較少的工作即可完成對數據庫的訪問了。