2012-10-24 5 views
6

Ich entwickle ein MS-Word-Addon, in dem mein Code Zugang zu den Buchstaben erhalten muss, die der Benutzer durch die Tastatur eingibt.Wie erstelle ich ein Ereignis auf MS Word Keypress

private void ThisDocument_Startup(object sender, System.EventArgs e) 
{ 
    this.SelectionChange += new SelectionEventHandler(ThisDocument_SelectionChange); 
} 

void ThisDocument_SelectionChange(object sender, SelectionEventArgs e) 
{ 
    MessageBox.Show(e.Selection.Text); 
} 

ich das Ereignis Selection denken kann, geben Sie mir den Text aber das Ereignis bei keypress nicht erhöht wird, Gibt es eine Möglichkeit, die Veranstaltung zu keypress auslösen? Auch wenn es eine einfachere Möglichkeit gibt, dies zu tun, oder ein Open-Source-Projekt, das die Funktionalität bereitstellt, wäre es willkommen.

+1

Auswahländerung ist für eine Zustandsänderung beim "Markieren von Text". (http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.document.selectionchange(v=vs.80).aspx), suchen Sie nach etwas wie "KeyUp", "KeyDown" oder "KeyPress", obwohl eine schnelle Suche nichts ergeben hat. –

+1

Siehe http://stackoverflow.com/questions/13000645/capturing-keydown-event-of-ms-word-using-c-sharp –

+0

@PhilPrice, Die Antwort schlägt vor, dass es keine direkte "KeyUp" oder "KeyDown" gibt Ereignis, auf das von Visual Studio zugegriffen werden kann. Ich verwende das Ereignis "SelectionChange" als Umgehung. Wenn ich es auslösen kann, kann ich das Zeichen am Cursor erfassen. BTW kann bereits durch die Pfeiltasten ausgelöst werden. Trotzdem vielen Dank für die Eingabe – Yohannes

Antwort

5

Microsoft gibt ein Schlüssel-Down-Ereignis nicht nativ aus, aber es gibt eine Problemumgehung.

Ich implementierte Tastatur mit Hilfe der unten verlinkten Artikel Überprüfung:

http://www.switchonthecode.com/tutorials/winforms-accessing-mouse-and-keyboard-state

IsKeyDown, Implementierung und den Aufruf einer Delegierten Sie abonnieren können sollte ziemlich einfach sein genannt Dies gibt Ihnen eine statische Methode.

+0

+1 Vielen Dank für diese Antwort. Ich denke an diesen Ansatz. Ist der von Ihnen implementierte Code zuverlässig? Ich meine, stört Office/Word, und unterbrechen Sie es manchmal von der Arbeit? Vielen Dank. – Sabuncu

+0

Ich bin nicht sicher, ich habe es nicht für ein Wort Addon verwendet :) – Soeholm

+0

@Soeholm Der Link Sie zur Verfügung gestellt ist jetzt tot. – Jared

Verwandte Themen