2011-09-11 9 views
4

TextBox에 선택 영역이 없으면 삽입 위치는 SelectionStart와 같습니다. 선택 항목이있을 때 TextBox의 삽입 위치를 가져 오는 방법은 무엇입니까?

그러나 가 선택가있는 경우, 다음 삽입 위치가 지정한 selectionStart (오른쪽에서 왼쪽으로 선택)에있을

:

enter image description here

아니면이 지정한 selectionStart + SelectionLength에 수 있습니다 (왼쪽 오른쪽으로 선택) :

있을 때 다음 텍스트 상자의 삽입 위치 밖으로 하나의 그림을 수행하는 방법, enter image description here

선택?

+1

선택 (예 : 실행 취소 등) 다른 텍스트 상자의 기능을 파괴하지 않는 방법으로 네이티브 API 호출 당신이 삽입하는 것은 무엇이든간에. 따라서 삽입 점은 SelectionStart입니다. – MrFox

+0

글쎄, 그것이 캐럿 (caret), 커서 (cursor) 또는 그 밖의 다른 것이라도, 위의 이미지에서 회색의 것을 말하고 있습니다. – Tom

+1

네이티브 EDIT 컨트롤에는 사용자가 찾을 수있는 방법이 없습니다. 왜 중요한지 설명하지 않으면 아무도이 문제를 해결할 수 없습니다. –

답변

1

트릭으로가는 길은있을 수 있지만 자연스러운 방법은 아닙니다.

응용 프로그램에서 주어진 순간에, 예를 들어 당신이 TextBox의 텍스트가 선택되어 있는지 알고 있다면 (차이 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽), 당신은

를 호출하여이 선 후

textBox1.SelectionLength = 0; //this will clear a selection UI 

할 수 없다

int caretPosition = textBox1.SelectionStart; 

은 실제로 Caret 위치를 검색합니다.

이것은 속임수입니다. 따라서 이러한 종류의 솔루션을 피하는 것이 좋습니다 (다른 사람에게 제공 될 수 있음) 코드를 약간 재정렬하는 것이 좋습니다.

희망이 도움이됩니다.

여기 캐럿 위치에
관련 문제