Freigeben über


TextDocumentKeyPressEvents-Schnittstelle

Definiert die Ereignisse, die mit dem Drücken einer Taste verknüpft sind. Verwenden Sie dieses Objekt für Funktionalität, und verweisen Sie auf TextDocumentKeyPressEventsClass, das die Dokumentation für den Member dieses Objekts enthält.

Namespace:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)

Syntax

'Declaration
<GuidAttribute("505B7600-8FCC-487C-9E4F-C7FD0B5FB690")> _
Public Interface TextDocumentKeyPressEvents _
    Inherits _TextDocumentKeyPressEvents, _dispTextDocumentKeyPressEvents_Event
[GuidAttribute("505B7600-8FCC-487C-9E4F-C7FD0B5FB690")]
public interface TextDocumentKeyPressEvents : _TextDocumentKeyPressEvents, 
    _dispTextDocumentKeyPressEvents_Event
[GuidAttribute(L"505B7600-8FCC-487C-9E4F-C7FD0B5FB690")]
public interface class TextDocumentKeyPressEvents : _TextDocumentKeyPressEvents, 
    _dispTextDocumentKeyPressEvents_Event
[<GuidAttribute("505B7600-8FCC-487C-9E4F-C7FD0B5FB690")>]
type TextDocumentKeyPressEvents =  
    interface
        interface _TextDocumentKeyPressEvents
        interface _dispTextDocumentKeyPressEvents_Event
    end
public interface TextDocumentKeyPressEvents extends _TextDocumentKeyPressEvents, _dispTextDocumentKeyPressEvents_Event

Der TextDocumentKeyPressEvents-Typ macht die folgenden Member verfügbar.

Methoden

  Name Beschreibung
Öffentliche Methode add_AfterKeyPress Infrastruktur. Nur für die interne Verwendung durch Microsoft vorgesehen. (Von _dispTextDocumentKeyPressEvents_Event geerbt.)
Öffentliche Methode add_BeforeKeyPress Infrastruktur. Nur für die interne Verwendung durch Microsoft vorgesehen. (Von _dispTextDocumentKeyPressEvents_Event geerbt.)
Öffentliche Methode remove_AfterKeyPress Infrastruktur. Nur für die interne Verwendung durch Microsoft vorgesehen. (Von _dispTextDocumentKeyPressEvents_Event geerbt.)
Öffentliche Methode remove_BeforeKeyPress Infrastruktur. Nur für die interne Verwendung durch Microsoft vorgesehen. (Von _dispTextDocumentKeyPressEvents_Event geerbt.)

Zum Seitenanfang

Ereignisse

  Name Beschreibung
Öffentliches Ereignis AfterKeyPress Infrastruktur. Nur für die interne Verwendung durch Microsoft vorgesehen. (Von _dispTextDocumentKeyPressEvents_Event geerbt.)
Öffentliches Ereignis BeforeKeyPress Infrastruktur. Nur für die interne Verwendung durch Microsoft vorgesehen. (Von _dispTextDocumentKeyPressEvents_Event geerbt.)

Zum Seitenanfang

Beispiele

In diesem Beispiel wird ein kleines Wörterbuch für Zeichenfolgen erstellt, das zur automatischen Umwandlung einiger englischer Begriffe für Farben in die jeweils entsprechende hexadezimale Darstellung verwendet wird. Dabei wird eine Verbindung mit einem BeforeKeyPress-Ereignis hergestellt. Ersetzen Sie den Code in der Datei Connect.cs durch den folgenden Beispielcode. Führen Sie dieses Add-In aus, und öffnen Sie in der integrierten Entwicklungsumgebung (IDE) von Visual Studio ein Textdokument. Geben Sie im Textdokument "red", "green" und "blue" ein, um zu beobachten, wie die Ereigniserfassungsmethode den Text jeweils in "#ff0000", "#00cc00" und "#0000ff" übersetzt. Weitere Informationen zum Ausführen der Automatisierungsbeispiele finden Sie unter Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell.

namespace myAddin
{
  using System;
  using Microsoft.VisualStudio.CommandBars;
  using Extensibility;
  using EnvDTE;
  using EnvDTE80;
  using System.Windows.Forms;
  public class Connect : Object, IDTExtensibility2
  {
  public Connect()
  {
  }
  public void OnConnection(object application, 
ext_ConnectMode connectMode, object addInInst, ref Array custom)
  {
      _applicationObject = (DTE2)application;
      _addInInstance = (AddIn)addInInst;
      // Create a small string dictionary with keys and corresponding
      // values.
      myStringDictionary = new
 System.Collections.Specialized.StringDictionary();
      myStringDictionary.Add("red", "#ff0000");
      myStringDictionary.Add("green", "#00cc00");
      myStringDictionary.Add("blue", "#0000ff");
      EnvDTE80.Events2 events =
 (EnvDTE80.Events2)_applicationObject.Events;
      textDocKeyEvents =
 (EnvDTE80.TextDocumentKeyPressEvents)
events.get_TextDocumentKeyPressEvents(null);
      // Connect to the BeforeKeyPress delegate exposed from the
      // TextDocumentKeyPressEvents object retrieved above.
      textDocKeyEvents.BeforeKeyPress +=new
 _dispTextDocumentKeyPressEvents_BeforeKeyPressEventHandler
(BeforeKeyPress);
  }
  public void OnDisconnection(ext_DisconnectMode disconnectMode, ref Array custom)
  {
      if (textDocKeyEvents != null)
      {
          textDocKeyEvents.BeforeKeyPress -= new 
_dispTextDocumentKeyPressEvents_BeforeKeyPressEventHandler
(BeforeKeyPress);
      }
  }
  public void OnAddInsUpdate(ref Array custom)
  {
  }
  public void OnStartupComplete(ref Array custom)
  {
  }
  public void OnBeginShutdown(ref Array custom)
  {
  }
  void BeforeKeyPress(string Keypress, EnvDTE.TextSelection Selection,
 bool InStatementCompletion, ref bool CancelKeypress)
  {
  if ((Keypress == " ") || (Keypress == "\t"))
      {
          EditPoint ep = Selection.ActivePoint.CreateEditPoint();
          EditPoint sp = ep.CreateEditPoint();
          sp.CharLeft(1);
          while (true)
          {
              string txt = sp.GetText(ep);
              if (myStringDictionary.ContainsKey(txt))
              {
                  sp.Delete(txt.Length);
                  sp.Insert(myStringDictionary[txt]);
                  CancelKeypress = true;
                  return;
              }
          sp.CharLeft(1);
          if ((ep.Line != sp.Line) || ((ep.DisplayColumn == 1) 
&& (ep.Line == 1)))
              break;
          }
       }
  }
  private DTE2 _applicationObject;
  private AddIn _addInInstance;
  private EnvDTE80.TextDocumentKeyPressEvents textDocKeyEvents;
  System.Collections.Specialized.StringDictionary myStringDictionary;
  }
}

Siehe auch

Referenz

EnvDTE80-Namespace