2012-10-24 10 views
6

私は自分のコードがキーボードから入力した文字にアクセスする必要があるMS-Wordアドオンを開発しています。MSワードでイベントを発生させる方法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); 
} 

私は、SelectionChangeイベントは私にテキストを与えることができると思いますが、イベントがキー入力で上昇されていない、キー入力時にイベントをトリガする方法はありますか?また、それを行うもっと簡単な方法や機能を提供するオープンソースプロジェクトがあれば、それは歓迎されます。

+1

選択の変更は、「テキストを強調表示する」状態を変更することです。 (http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.document.selectionchange(v=vs.80).aspx)、 "KeyUp"、 "KeyDown"または "KeyPress"ですが、クイック検索では何も得られませんでした。 –

+1

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

+0

@PhilPriceを参照してください。その答えは、直接の "KeyUp"または "KeyDown"ビジュアルスタジオからアクセスできるイベント。私は回避策として "SelectionChange"イベントを使用しています。私はそれをトリガーすることができます私はカーソルで文字をキャプチャすることができます。それはすでに矢印キーで起動できます。とにかく入力のおかげで – Yohannes

答えて

5

マイクロソフトでは、キーダウンイベントをネイティブに公開していませんが、回避策があります。

私は以下のリンク先の記事からの助けを借りてチェックキーボードを実装:

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

これは、あなたが前方にかなりまっすぐにする必要がありますを購読することができ、デリゲートを実装し、呼び出し、あなたにIsKeyDownという静的メソッドを提供します。

+0

+1この回答ありがとうございます。私はこのアプローチを使用することを考えています。あなたが実装したコードは信頼できるものですか?つまり、Office/Wordは途中で停止し、断続的に機能しなくなりますか?ありがとうございました。 – Sabuncu

+0

私は確信していません、私は単語のアドオンのためにそれを使用しませんでした:) – Soeholm

+0

@Soeholmあなたが提供したリンクは現在死んでいます。 – Jared

関連する問題