저는 사용자 정의 텍스트 상자입니다. 이제 사용자가 줄을 클릭하고 클릭 한 부분으로 커서를 이동할 수있는 부분을 구현하고 있습니다.픽셀 오프셋을 기반으로 문자열 인덱스 가져 오기
문자 높이가 모든 글꼴에서 일정하지만 열이 없기 때문에 클릭 한 텍스트 행을 얻는 방법을 알고 있습니다. 그 이유는 "그릴 수있는 텍스트를 모두 가져와야합니다. 너비가 고정 너비 글꼴을 사용하지 않는 한 일관성이 없기 때문에 문자 폭은 보장되지 않습니다.
그래서 나는 () 문자열을 그리는 요점을 가지고 있는데 사용자가 클릭 한 점이 있습니다. 클릭 한 캐릭터의 문자열 인덱스는 어떻게 얻습니까?
추가 정보 : 목록에 줄을 저장 한 다음 목록을 반복하고 각 줄에 Graphics.DrawString
을 사용하여 텍스트를 그립니다.
모든 텍스트 편집기가 이런 식으로해야합니까? 즉, RichTextBox가 이렇게합니까? 예쁜 해킹 같아. –
RichTextBox에는 GetCharFromPosition 메서드가 있습니다. 이것은 네이티브 windows API 메시지를 사용하여 문자 색인을 얻습니다. –
이것을 사용할 방법이 있습니까? 기본 API 메시지는 어떻게 처리합니까? –