3
我在寫我自己的擴展。我創建了一個工具欄按鈕。我使用的模板是「Visual Studio Package」,並且在嚮導中有一個選項來創建一個命令按鈕(或類似的東西)Visual Studio 2010的擴展得到選定的文本
所以按鈕顯示出來,但我無法弄清楚如何獲取當前文檔或文檔中的選定文本。
任何幫助,將不勝感激。
我在寫我自己的擴展。我創建了一個工具欄按鈕。我使用的模板是「Visual Studio Package」,並且在嚮導中有一個選項來創建一個命令按鈕(或類似的東西)Visual Studio 2010的擴展得到選定的文本
所以按鈕顯示出來,但我無法弄清楚如何獲取當前文檔或文檔中的選定文本。
任何幫助,將不勝感激。
有兩種方法來解決:
DTE
來獲取當前文件(DTE.ActiveDocument
)和選定的文本(((TextDocument)activeDoc).Selection.Text
)。 DTE dte = GetService(typeof(SDTE)) as DTE;
注意,活動文檔可能null
:您可以通過編寫得到你的包頂級DTE
對象。
謝謝,所述DTE DTE = GetService的(typeof運算(SDTE))作爲DTE;正是我所追求的,我正在玩GetService。是否有任何資源列出您可以傳入的所有內容?他們都做了什麼? – 2010-07-02 06:18:49
一個竅門是尋找像SDTE這樣的接口; 「S」表示「服務」,並且被用作卡在服務提供商中的對象的密鑰。看看[這個命名空間的MSDN(http://msdn.microsoft.com/en-us/library/bb164288.aspx)(滾動頁面,直到找到與'SVs'啓動界面)。 – 2010-07-02 07:09:17
......我還應該提到:這些地圖中的每一個至少*一個界面,儘管有些可以映射到很多。例如,'SVsUIShell'映射到'IVsUIShell','IVsUIShell2' ......經過4 – 2010-07-02 07:11:10