2013-03-28 4 views
1

좋아, 여기서 좀 더 구체적으로하려고합니다. 선택한 텍스트의 위치를 ​​텍스트 상자에서 가져 오려고합니다.선택한 텍스트의 위치를 ​​텍스트 상자에서 문자열로 가져옵니다.

정교하게 - 위치를 사용하여 텍스트를 선택할 수 있습니다. 내가 할 수있는 textBox1이 있다면 :

textBox1.SelectionStart = 1; 
textBox1.SelectionLength = 4; 

두 번째 문자에서 시작하여 4자를 선택합니다.

내가 원하는 것은 그 반대입니다 : 사용자가 텍스트를 선택할 때, 시작이 무엇인지, 길이가 무엇인지 (또는 시작이 무엇인지, 끝이 무엇인지) 알아야합니다. 둘 중 하나가 작동합니다.

나는 selectedtext (textBox1.SelectedText)의 문자열을 검색하는 것에 대해 생각했습니다. 일반적인 단어이거나 여러 번 사용 된 문자열 인 경우 문제가 발생합니다. 예를 들어.

이것은 고양이입니다. 이것은 고양이이다. 이것은 고양이이다.

두 번째 문장을 선택하면 SelectedText를 사용하여 특정 문장의 문자열을 검색하는 것이 좋지 않습니다. 그것은 3 중 하나 일 수 있습니다.

그래서, 내 질문은 : 사용자가 단추를 클릭하면 어떻게 그 특정 요소를 나중에 조작 할 수 있도록 사용자가 선택한 정확한 요소를 결정합니까? 중요한 부분은 나중에 버튼을 눌렀을 때 텍스트를 조작하려는 것일뿐입니다. 텍스트가 더 이상 강조 표시되지 않을 때 나중에 나중에 조작하고 싶습니다. 이것은 내가 문장의 어떤 부분을 다루고 있는지 기억하기를 원할 것입니다. 그 해결책이 실행 가능하지 않다면, 위의 "this is a cat"예제에서 두 번째 문장을 선택하고 단추를 누르고 나중에 어떤 문장을 선택했는지 생각할 수있는 해결책이 있습니까? 그가 그 단추를 때?

+1

'SelectionStart'와'SelectionLength'를 읽을 수 없습니까? –

+0

'textBox1.SelectionStart' 및'textBox1.SelectionLength'의 값을 사용할 수 없습니까? –

+0

... ... 나는 생각조차하지 않았다. 그게 효과가 있다면 나는 너무 어리 석다. 감사합니다 회신 주셔서 감사합니다! = D – user1548103

답변

6

documentation에 따르면, SelectionStartSelectionLength은 설정 및 읽을 수 있습니다. 그냥 사용하십시오.

+0

Bart에게 감사의 말을 전합니다. 이게 내 문제를 해결했습니다. 나는 또 다른 10 분 동안 대답을 선택할 수는 없지만, 그것이 나를 허용 할 순간이다. – user1548103

1

선택한 텍스트의 위치를 ​​알고 텍스트를 조작하여 텍스트에서 선택한 텍스트를 편집하지 않아도 간단히 SelectedText 속성을 새 편집 값으로 설정할 수 있습니다.

// if textBox1.text = "Hello World World"; with first "World" selected 
textBox1.SelectedText = textBox1.SelectedText.Replace("World", "Raj"); 
// then it becomes "Hello Raj World"