方案一:攔截 MouseUpEvent,彈出 ContextMenu —— 完全自訂,無原生選單
方案二:在 PageSheet 增加 Action,使用 RUNADDONWARGS —— 保留 Visio 內建複製/貼上等選單


// 註冊事件
drawingControl.MouseUpEvent += new AxMicrosoft.Office.Interop.VisOcx.EVisOcx_MouseUpEventHandler(this.onDrawingControlMouseUp);
// 事件處理
private void onDrawingControlMouseUp(short Button, short KeyButtonState, double x, double y)
{
if (Button == 2) // 右鍵
{
// 計算螢幕座標並顯示 ContextMenu
Point screenPos = drawingControl.PointToScreen(new Point((int)x, (int)y));
contextMenu.Show(screenPos);
}
}
ContextMenu contextMenu = new ContextMenu();
MenuItem miCopy = new MenuItem("複製(&C)", OnCopy);
MenuItem miPaste = new MenuItem("貼上(&P)", OnPaste);
MenuItem miSep = new MenuItem("-");
MenuItem miDelete = new MenuItem("刪除(&D)", OnDelete);
contextMenu.MenuItems.AddRange(new MenuItem[] { miCopy, miPaste, miSep, miDelete });