回答

-1

有一些宏可以響應的事件,但是,我不認爲文字輸入是其中之一,更好的方法可能是使用片段 - http://msdn.microsoft.com/en-us/library/ms165392(v=VS.100).aspx

他們會允許你定義一個關鍵字,然後將文本添加到編輯器中。 一個很好的例子是屬性片段;在您的編輯器中鍵入'prop',然後按Tab(在C#中兩次,在VB中一次)以調用。

這裏是可用的片段的詳細列表: http://msdn.microsoft.com/en-us/library/z41h7fat(v=VS.100).aspx

2

可以使用TextDocumentKeyPressEvents.AfterKeyPress事件。用戶在文本編輯器中按任意鍵後,下面的宏觸發器。然後它得到當前行。這個例子測試,如果行中包含「hello」文本,並且如果是這樣的話,它顯示消息框中的行。

Private Sub TextDocumentKeyPressEvents_AfterKeyPress(ByVal Keypress As String, _ 
ByVal Selection As EnvDTE.TextSelection, ByVal InStatementCompletion As Boolean) _ 
Handles TextDocumentKeyPressEvents.AfterKeyPress 
    Try 
     Dim line As String 

     Dim aPoint As EditPoint = Selection.ActivePoint.CreateEditPoint 
     Dim startPoint As EditPoint = aPoint.CreateEditPoint 
     startPoint.StartOfLine() 
     Dim endPoint As EditPoint = aPoint.CreateEditPoint 
     endPoint.EndOfLine() 
     line = startPoint.GetText(endPoint) 

     If line.Contains("hello") Then 
      MsgBox(line) 
     End If 
    Catch ex As Exception 
    End Try 
End Sub 

創建和這個宏適用於:

  1. 轉到菜單工具 - 宏 - 宏IDE ...
  2. 在宏IDE類視圖導航到MyMacros - {} MyMacros - EnvironmentEvents。打開(雙擊)EnvironmentEvents。
  3. 將此代碼粘貼到模塊內(就在結束模塊行之前)
相關問題