天天看點

C#進行Visio二次開發之事件

回顧Visio的對象

l  Application對象

l  Window對象

l  Document對象

l  Page對象

l  Master對象

l  Shape對象

l  Cell對象

Visio對象還有

l  Selection對象

l  Connects對象

l  Style對象

l  Keyboard

l  Mouse

l  DataRecordset

Application對象的事件

l  右鍵菜單:MarkerEvent

l  程式退出前:BeforeQuit

l  模态視窗關閉後:AfterModal

l  模态視窗出現前:BeforeModal

l  Visio事件完成:NoEventsPending

l  程式激活:AppActivated

l  程式挂起前:BeforeSuspend

l  進入擷取退出Scopes:EnterScope/ExitScope

l  使用者動作響應提示:QueryCancelQuit

l   … …

Window對象的事件

l  視窗打開:WindowOpened

l  視窗改變:WindowChanged

l  視窗關閉前:BeforeWindowClosed

l  視窗關閉取消:WindowCloseCanceled

l  視窗選區Shape被删除: BeforeWindowSelDelete

l  視窗頁面改變前: BeforeWindowPageTurn

l  視窗頁面改變後:WindowTurnedToPage

l  Visio視窗改變:WindowActivated

l  … …

Document對象事件

l  文檔添加:DocumentAdded

l  文檔建立:DocumentCreated

l  打開文檔:DocumentOpened

l  文檔改變:DocumentChanged

l  文檔儲存:DocumentSaved

l  文檔關閉:BeforeDocumentClose

Page對象事件

l  頁面添加:PageAdded

l  頁面改變:PageChanged

l  頁面删除:BeforePageDelete

l  取消頁面删除:PageDeleteCanceled

Shape對象事件

l  Shape删除前:BeforeShapeDelete

l  Shape添加:ShapeAdded

l  Shape改變:ShapeChanged

l  Shape删除後: ShapesDeleted

l  Shape文本編輯:BeforeShapeTextEdit

l  Shape文本編輯退出:ShapeExitedTextEdit

l  Shape 連接配接添加:ShapeLinkAdded

l  Shape 連接配接删除: ShapeLinkDeleted

l  Shape 組合變化: ShapeParentChanged

Master對象事件

l  模具添加:MasterAdded

l  模具改變:MasterChanged

l  模具删除:BeforeMasterDelete

l  取消模具删除:MasterDeleteCanceled

l  模具删除提示:QueryCancelMasterDelete

Cell對象事件

l  Cell的值改變:CellChanged

l  Cell的formula 改變:FormulaChanged

Selection對象事件

l  選區删除前:BeforeSelectionDelete

l  選區删除提示:QueryCancelSelectionDelete

l  選區增加:SelectionAdded

l  選區改變:SelectionChanged

l  選區取消:SelectionDeleteCanceled

Connects對象事件

l  連接配接添加:ConnectionsAdded

l  連接配接移除:ConnectionsDeleted

Style對象事件

l  Style添加:StyleAdded

l  Style改變: StyleChanged

l  Style删除前: BeforeStyleDelete

l  Style取消删除: StyleDeleteCanceled

l  Style删除提示:QueryCancelStyleDelete 

Keyboard對象事件

l  KeyDown

l  KeyPress

l  KeyUp

Mouse對象事件

l  MouseDown

l  MouseMove

l  MouseUp

事件的處理

l  實作接口IVisEventProc

n  public class EventSink : IVisEventProc

l  使用AddAdvise建立事件偵聽

n  documentEvents.AddAdvise( (unchecked((short)VisEventCodes.visEvtAdd) + (short)VisEventCodes.visEvtShape),  (IVisEventProc)this, sink, "ShapeAdd");

l  實作object IVisEventProc.VisEventProc()函數,和具體處理函數挂鈎