首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

Visio 事件模型完整速查:Application 到 Keyboard 全物件事件對照表

     編輯:關於C#

Visio 物件模型提供豐富的事件機制,掌握各物件支援的事件是開發互動式增益集的基礎。本文整理九大核心物件的完整事件清單,並示範 IVisEventProc 介面實作與 AddAdvise 訂閱範式。

核心物件事件速查表

Application 物件

  • AppActivated、BeforeQuit、BeforeModal/AfterModal、NoEventsPending、QueryCancelQuit、EnterScope/ExitScope、MarkerEvent(右鍵選單)...

Window 物件

  • WindowOpened/Changed、BeforeWindowClosed/WindowCloseCanceled、BeforeWindowSelDelete、BeforeWindowPageTurn/WindowTurnedToPage、WindowActivated...

Document 物件

  • DocumentAdded/Created/Opened、DocumentChanged/Saved、BeforeDocumentClose...

Page 物件

  • PageAdded/Changed、BeforePageDelete/PageDeleteCanceled...

Shape 物件

  • ShapeAdded/Changed、BeforeShapeDelete/ShapesDeleted、BeforeShapeTextEdit/ShapeExitedTextEdit、ShapeLinkAdded/Deleted、ShapeParentChanged...

Master 物件

  • MasterAdded/Changed、BeforeMasterDelete/MasterDeleteCanceled、QueryCancelMasterDelete...

Cell 物件

  • CellChanged、FormulaChanged...

Selection 物件

  • SelectionAdded/Changed、BeforeSelectionDelete/SelectionDeleteCanceled、QueryCancelSelectionDelete...

Connects/Style/Keyboard/Mouse/DataRecordset 物件

  • ConnectionsAdded/Deleted、StyleAdded/Changed/Deleted、KeyDown/Press/Up、MouseDown/Move/Up...

事件處理標準範式

1. 實作 IVisEventProc

public class EventSink : IVisEventProc {
    public object VisEventProc(short eventCode, object source, int eventID, 
        int eventSeqNum, object subject, object moreInfo) {
        // 處理邏輯
        return null;
    }
}

2. 使用 AddAdvise 訂閱


EventList docEvents = document.EventList;
docEvents.AddAdvise(
    (short)VisEventCodes.visEvtAdd + (short)VisEventCodes.visEvtShape,
    this, "", "ShapeAdd");
docEvents.AddAdvise(
    (short)VisEventCodes.visEvtDel + (short)VisEventCodes.visEvtShape,
    this, "", "ShapeDelete");
docEvents.AddAdvise(
    (short)VisEventCodes.visEvtMod + (short)VisEventCodes.visEvtCell,
    this, "", "CellChanged");

3. 事件碼組合規則

Visio 事件碼為 動作碼 + 物件碼:

  • 動作:visEvtAdd(1)、visEvtDel(2)、visEvtMod(4)、visEvtCell(8)、visEvtShape(16)...
  • 組合:visEvtAdd + visEvtShape = 形狀新增;visEvtMod + visEvtCell = 儲存格變更。

建議將此表列印備查,開發時快速定位所需事件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved