2012-10-24 2 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"이벤트를 해결 방법으로 사용하고 있습니다. 내가 그것을 발동시킬 수 있으면 나는 커서에서 문자를 잡을 수있다. BTW는 이미 화살표 키로 트리거 할 수 있습니다. 어쨌든 입력 주셔서 감사합니다 – Yohannes

답변

5

Microsoft는 키 다운 이벤트를 기본적으로 노출하지 않지만 해결 방법이 있습니다.

나는 아래에 링크 된 기사의 도움으로 확인 키보드를 구현 : 이것은 구현하고 구독 할 수 있습니다 대리자가 상당히 정직해야 호출, 당신에게 IsKeyDown라는 정적 메소드를 제공

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

.

+0

+1이 답변을 주셔서 감사합니다. 나는이 방법을 사용하려고 생각하고있다. 코드를 신뢰할 수 있습니까? 내 말은, Office/Word가 방해가되고 간헐적으로 작동을 멈추는 것입니까? 고맙습니다. – Sabuncu

+0

확실하지 않습니다. 단어 추가 기능으로 사용하지 않았습니다. – Soeholm

+0

@Soeholm 제공하신 링크가 이제 종료되었습니다. – Jared

관련 문제