2012-12-07 7 views
0

RichTextBox 문자열을 삽입하려고합니다.rtf 문자열을 삽입 할 때 RichTextBox 캐럿 위치가

private void richTextBox1_KeyUp(object sender, KeyEventArgs e) 
{ 
    string st = richTextBox1.Rtf; 
    st=st.Insert(750, "void"); 
    richTextBox1.Rtf = st; 
} 

문제는 각 업데이트 후, 캐럿이 삽입 된 텍스트 앞에 가서 내가 마지막에 그것을 유지하려는 점이다 :이 KeyUp 이벤트 형태 RichTextBox입니다. 나는 이것이 길이가 st 일 때만 일어난다는 것을 알았다.

답변

0

코드가 최종 사용자를 위해 어떻게 작동 할 것으로 판단 할 수 없습니다. 심지어 색인 750에서 당신은 제어 문자 대 문자를 가지고 있다는 것을 어떻게 알 수 있습니까? 당신이 무효가 삽입되는 위치에서 캐럿을 넣어하려는 경우

물론
private void richTextBox1_KeyUp(object sender, KeyEventArgs e) 
{ 
    string st = richTextBox1.Rtf; 
    st=st.Insert(750, "void"); 
    richTextBox1.Rtf = st; 
    richTextBox1.SelectionStart = richTextBox1.TextLength; 
} 

, 그것이 작동하지 않을 것입니다 :

빠른 해결책은 결국 자신에게 caret의 위치를 ​​설정하는 것입니다 과 텍스트 속성이 다른 것들이므로 속성을 사용하십시오. 텍스트 속성에 텍스트를 삽입하려고하면

은, 그것은 다음과 같이 보일 것입니다 :

private void richTextBox1_KeyUp(object sender, KeyEventArgs e) 
{ 
    string st = richTextBox1.Text; 
    st=st.Insert(750, "void"); 
    richTextBox1.Text = st; 
    richTextBox1.SelectionStart = 750 + 4; 
} 
+0

대단히 감사합니다! ;-) – Sumi