2012-09-14 3 views
1

저는 현재 단어 예측 기능이있는 간단한 가상 키보드 인 C# 데스크톱 응용 프로그램을 개발 중입니다.C# 키보드 및 단어 예측

단어의 처음 세 글자를 입력 한 후 예측 프로세스가 시작되고 제안 사항이 제공됩니다. 타자를 치는 동안 캐럿을 추적해야하고 SelectionChanged와 같은 richTextBox 이벤트를 사용하려고했지만 정규 표현식 검사와 수동으로 위치 추적 (변수 선언 ...)이 필요합니다.

내 질문 :이 작업을 수행하는 데 도움이되는 제안이 있습니까? Listener는 어떻습니까? 그들은 도움이됩니까?

참고 : .NET Framework에 대한 오랜 경험이 없으며 전에 Listener를 사용하지 않았습니다.

입력 방법은 시선입니다. 키 이벤트가 아닌 것을 의미합니다.

감사합니다.

+0

WPF 또는 WinForms에 표시됩니까? –

+0

OSK.exe (화면 키보드)의 문제점은 무엇입니까? – Nick

+0

@ 닉 어쩌면 단어 완성/제안? –

답변

0

WPF 또는 WinForms에 표시됩니까? 나는 다음과 같이이 문제를 해결할 것이다. 어쩌면 가장 빠른 방법은 아니지만 다른 것을 가질 때까지 시도 할 가치가 있습니다.

마지막 문자가 공백인지 RTB 검사의 OnKeyDown 이벤트. 마지막 공간에서 전체 단어를 얻지 못하면 단어 목록을 확인하고 화면에서 목록을 업데이트하십시오.

커서가 단어의 위치에 있는지 확인하려면 위와 동일하게 현재 단어와 특정 키의 색인을 가져 오십시오.

+0

사용자가 시선을 사용하기 때문에 OnKeyDown을 사용할 수 없습니다! 키 이벤트가 전혀 작동하지 않으며 이것이 내가 직면하고있는 주요 문제입니다. 내가 할 수있는 건 캐럿 위치를 다루는 것 뿐이야, 그렇지? – user1671222

+0

RTB 안에 FlowDocument가있는 경우 [CaretPosition] (http://msdn.microsoft.com/en-us/library/system.windows.controls.richtextbox.caretposition.aspx)을 얻을 수 있습니다. –