2012-10-24 14 views
6

Sto sviluppando un addon in MS-Word in cui il mio codice deve ottenere l'accesso alle lettere che l'utente sta inserendo attraverso la tastiera.Come generare un evento su 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); 
} 

penso che l'evento SelectionChange mi può dare il testo ma l'evento non viene generato in pressione di un tasto, C'è un modo per attivare l'evento a pressione di un tasto? Inoltre, se esiste un modo più semplice per farlo o un progetto open source che fornisce la funzionalità, sarebbe il benvenuto.

+1

Il cambio di selezione è per un cambio di stato quando si "evidenzia il testo". (http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.document.selectionchange(v=vs.80).aspx), cerca qualcosa come "KeyUp", "KeyDown" o "KeyPress", anche se una ricerca rapida non ha dato alcun risultato. –

+1

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

+0

@PhilPrice, la risposta suggerisce che non esiste un "KeyUp" o "KeyDown" diretto evento a cui si può accedere da Visual Studio. Sto usando l'evento "SelectionChange" come soluzione. Se posso farlo scattare, posso catturare il carattere sul cursore. A proposito, può già essere attivato dai tasti freccia. Comunque grazie per l'input – Yohannes

risposta

5

Microsoft non espone un evento key down in modo nativo, ma c'è una soluzione alternativa.

ho implementato tastiera controllo con l'aiuto di questo articolo link sottostante:

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

Questo vi dà un metodo statico chiamato IsKeyDown, implementazione e invocando un delegato è possibile sottoscrivere dovrebbe essere abbastanza semplice.

+0

+1 Grazie per questa risposta. Sto pensando di usare questo approccio. Il codice che hai implementato è affidabile? Voglio dire, Office/Word si intromette e a intermittenza non funziona? Grazie. – Sabuncu

+0

Non sono sicuro, non l'ho usato per un addon di parole :) – Soeholm

+0

@Soeholm Il link che hai fornito ora è morto. – Jared