在Visual Studio.NET中使用自訂外掛程式最大化您的生產力(二)

來源:互聯網
上載者:User
visual|最大化 一個簡單的編輯功能:插入日期

我建立了一個簡單插入日期的功能,確切的功能是:在當前游標的位置或則當前選擇文本的地方插入當前日期。這是Visual Studio .NET中已經包含了一個用宏實現此功能的例子。所以你可以看見通過宏和外掛程式兩種不同的方法實現同樣的功能。這個例子非常簡單,只需要你修改一個在前面列出來的那個Exec函數。通過前面章節我已經建立了一個基本外掛程式,這個外掛程式的名字是“TextUtil”更加確切的說是“TextUtil.Connect.TextUtil”。在Exec函數中我替換了嚮導自動產生的程式碼。

handled = true;

替換為

handled = InsertDate();

增加如下InsertData()函數,可以在Connect對象中的任何地方增加該函數。

private bool InsertData()

{

if(applicationObject.ActiveDocument!= null)

((TextSelection)applicationObject.ActiveDocument.Selection).Text

=DateTime.Now.ToString("yyy-MM-dd");

return true;

}

InsertData函數使用了System.DateTime和Sytem.String對象。關於System.String的介紹可以參看協助。在這裡我注意到在OnConnection中關於CommandBars的三行代碼,這三行代碼是在以後啟動並執行過程中要在工具菜單中建立功能表項目。

除了名稱外掛程式已經完成。按F5來實驗外掛程式。一個新的IDE執行個體運行,在這個執行個體中這個外掛程式將出現在工具|增益集管理對話方塊中。可以通過選中再增益集管理對話方塊中最左面的複選框來載入外掛程式。現在你可以開啟任何一個文字檔,然後再Visual Studio .NET的命令視窗中輸入“TextUtil.Command.TextUtil”在當前游標的位置將插入當前日期。事實上在你完成輸入之前自動變異已經天填充了命令。

當你按下F5開始運行一個IDE新的執行個體的時候,你的外掛程式是在偵錯模式下。我們可以在偵錯模式下發現所有異常的資訊。在普通的操作中出現了任何的異常,他們都可能不可用。儘可能的得到異常的資訊,那麼錯誤的原因就會儘早的發現。

改變命令名稱

嚮導已經為功能表命令指定了預設的名字(TextUtil)。因此這個名字是不具有特色描述的,我一會會增加更多的功能表命令、改變功能表命令名稱。同時,因為我在改變命令名稱的時候遇到過名稱混亂的情況,所以我們必須確認我們的外掛程式不會有相同的命令名稱。

第一個改變是在OnConnection函數中調用AddNameCommand之處

Command command = commands.AddNamedCommand(addInInstance,

"InsertDate",

"Insert Current Date",

"Insert Current Date",

true, 59, ref contextGUIDS,

(int)vsCommandStatus.vsCommandStatusSupported

+(int)vsCommandStatus.vsCommandStatusEnabled);



在QuertyStatus中更改如下:

if(commandName.ToLower() == "textutil.connect.insertdate")

嚮導在初始運行載入之前應經註冊了外掛程式資訊,但是名稱的改變影響了註冊資訊。這就意味著在增加了外掛程式功能的時候我們需要從新產生外掛程式項目和安裝項目。然後再運行安裝程式。




圖3 運行外掛程式(原文:Running the Macro 譯者:可能是錯誤)

現在“TextUtil.Connect.InsertDate”命令可以按照我的想法工作了(圖3)。但是,他是怎麼工作的呢?讓我們繼續往下看。

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。