1. 程式人生 > >Word二次開發--使用者編輯時自動顯示提示視窗

Word二次開發--使用者編輯時自動顯示提示視窗

VS2012提示功能看上去很神奇,那我們在Word中也做一個吧!

一、首先在ThisAddIn_Startup中新增DocumentContextOnUpdate事件     

Globals.ThisAddIn.Application.ActiveDocument.CommandBars.OnUpdate += DocumentContextOnUpdate;

當用戶輸入文字內容後觸發該事件

二、定義變數

        public int  CurserPositionX=0;
        public int  CurserPositionY=0;
        public int rangewidth=0;
        public int rangeheight=0;

三、事件程式碼 

  private void DocumentContextOnUpdate()
        { 

           //得到當前編輯內容的位置(是游標位置,不是滑鼠位置)
            WordInterop.Range ra = Globals.ThisAddIn.Application.Selection.Range;
            Globals.ThisAddIn.Application.ActiveDocument.ActiveWindow.GetPoint(out CurserPositionX,out CurserPositionY, out rangewidth,out rangeheight ,ra);

           //建立無標題的非模態的視窗
            TempWindowForTest windows= new TempWindowForTest();

           //下面計算窗口出現的位置

            int formLoadLocationX = 0;
            int formLoadLocationY = 0;

            formLoadLocationX=CurserPositionX+rangewidth;
            formLoadLocationY=CurserPositionY+rangeheight;

           //設定視窗顯示的位置(一定要先設定視窗的StartPosition,否則Location不起作用)
            windows.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
            windows.Location = new Point(formLoadLocationX,formLoadLocationY);
           //顯示視窗
            windows.Show();
        }

四、word中的效果,如圖:

看像VS2012中的提示視窗已經做了一半了!

相關推薦

Word開發--使用者編輯自動顯示提示視窗

VS2012提示功能看上去很神奇,那我們在Word中也做一個吧! 一、首先在ThisAddIn_Startup中新增DocumentContextOnUpdate事件      Globals.ThisAddIn.Application.ActiveDocument.Co

AutoCAD開發&實現簡單的自動編號

今天一早上看了群裡有小夥伴有這樣的需求,是實現使用者用滑鼠點選拾取AutoCAD平面,拾取點然後作為插入編號文字位置,按住esc鍵後,退出自動編號。按照他的需求,我這裡大致想了一下,如果按照該小夥伴提出的用多執行緒和委託,想必有點複雜了。首先AutoCAD是不支援多執行緒的,

ecshop開發--熱詞搜尋且顯示

1.進入upload->themes->degault->library->page_header.lbi中搜索以下程式碼 {if $searchkeywords} {$lang.hot_search} :

AE開發中幾個功能速成歸納(符號設計器、創建要素、圖形編輯、屬性表編輯、緩沖區分析)

文件夾路徑 及其 基本框架 option 開啟 rgs database ets remove /* * 實習課上講進階功能所用文檔,因為趕時間從網上抄抄改改,湊合能用,記錄一下以備個人後用。 * * --------------------------------

k3 wise 序簿開發2

eid 響應 idt eventid ins mar .get ont rdp             這是系統自帶的一些按鈕的事件ID和名稱 300014 單據拆分後事件 300013 單據拆分前事件 300012 單據合並後事件

企業在選擇MES軟體,需要考慮開發嗎?

從一定程度來說,二次開發也是MES上線的目的之一。MES的固化一旦成了僵化,就會成為生產製造的阻礙,這就需要進行二次開發。MES需要再次通過客戶化、功能增強、功能修改、本地化和介面去滿足客戶特定要求。固化而不僵化,唯有將系統的定義置於靈活的需求制導引擎中,不僅開發階段如此,維護階段也是如此。用得好的,就保留、

企業在選擇MES軟件,需要考慮開發嗎?

process ron 產出 生產制造 不同的 質量 產品質量 效率 員工 從一定程度來說,二次開發也是MES上線的目的之一。MES的固化一旦成了僵化,就會成為生產制造的阻礙,這就需要進行二次開發。MES需要再次通過客戶化、功能增強、功能修改、本地化和接口去滿足客戶特定要求

bootstrap-table 外掛開發新增表格行新增和編輯功能

bootstrap-table 外掛新增表格行新增和編輯功能 version 1.11.0 原外掛相關功能完善 新增表格引數totalField:'total' 修改load方法的 this.options.totalRows = data.total; 改為 this.o

Revit開發之技能篇(一)———軸網自動對齊

在做專案的過程中,軸網都是進行翻模或者拾取,而翻模出來的軸網往往都是不堪入目的,為了滿足專案需要,做了軸網對齊的功能,廢話不多說,直接上乾貨。 首先做一些準備工作,先建立一個軸網過濾類,接下來會用到,程式碼如下: class GridSelectionFilter : ISelection

Revit開發(6):Ribbon編輯器(開源專案)

這是我再github上法相的一個開源專案。 github專案:https://github.com/PrestonII/2013RevitRibbon git地址:https://github.com/PrestonII/2013RevitRibbon.git 簡單

python操作wps/操作word/操作excle/操作ppt:文件專用模組或者開發

python呼叫wps/呼叫word/呼叫excle/呼叫ppt 在實際應用中,我們經常需要接觸一些日常的檔案,比如word(.doc/.docx)、excle(et)、ppt(.ppt/.pptx)。而python又是你掌握的程式語言,這個時候,你有以下兩種選擇: 方法一

c# cad 開發 自動載入應用程式

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R17.1\ACAD-6001:804\Applications\XXX] "DESCRIPTION"="M

dedecms開發:dedetemplate.class.php 動態模板類

filename 外部 運行 mpi public esc val net color dedecms二次開發目錄點這個:dedecms二次開發教程目錄 核心類文件 include/dedetemplate.class.php 用途:用於非核心模塊的動態頁面或列表頁的模板解

VB.Net實現下CATIA開發方法

ror 點擊 doc struct cat inf 定義 then ports 源自網絡。 在visual studio(vb,c#,c++)下使用CATIA進行二次開發有如下特點: -->需要引用CATIA的對象庫 -->需要對象聲明(visua

呼叫中心系統OA開發

清單 二次開發 工作 註意 分辨率 傳真 新增 歷史 有效 1. 既有修改 分辨率顯示自適應調整 工作流數據調整 2. 呼叫中心 語音電話 l 新建任務 字段:任務主題、語音主題、提

(6)微信開發 之 微信文本消息接口實現

微信 odin link 消息處理 nal puts 算法 帳號 接口實現 p.p1 { margin: 13.0px 0.0px 13.0px 0.0px; text-align: justify; font: 16.0px SimSun } p.p2 { margin:

學習 MeteoInfo開發教程(一)

mat 沒有 組件 資源管理 img 教程 layer 添加 bbs 來自氣象家園:http://bbs.06climate.com/forum.php?mod=viewthread&tid=6631 按照教程,沒有太大問題,有些是對c#操作不熟悉導致。 1.添加d

學習 MeteoInfo開發教程(三)

開發教程 cnblogs false raw class .dll dll inf legend 1.breakList的問題 ((PolygonBreak) aLS.breakList[0]).DrawFill=false; 新的類庫將LegendScheme的brea

學習 MeteoInfo開發教程(四)

手動添加 map dem itl 數控 nas 字號 south title 教程四的問題不大。 1.private void AddMapFrame_ChinaSouthSea()、private void AddTitle()兩個函數和public Form1()函數並

Revit開發--Hello World

man dem users att try encoding cli 引用 類庫 部署完開發環境,就要進行每次學習新的技能,必寫的Hello World。 1、打開VS開發環境,新建一個項目類庫RevitDemo。 2、修改Class1名稱為Command。 3、在引