2012-07-03 2 views
1

Можно создать дубликат:
Set cursor in RichTextBoxКак обновить позицию курсора?

private void richTextBox1_TextChanged(object sender, EventArgs e) 
{ 
    string text = richTextBox1.Text.ToString();   
    text = text.Replace("a", "අ"); 
    text = text.Replace("අඅ", "ආ"); 
    richTextBox1.Text = text.ToString(); 
} 

это мой код. здесь, после получения результата, позиция курсора находится впереди буквы, так как я обновляю позицию курсора после буквы? пожалуйста, помогите ........

+0

Вы можете установить значение SelectionStart на число, большее, чем длина текста. Это автоматически поместит курсор после последнего символа. например 'this.rechTextBox1.SelectionStart = int.MaxValue;' – Polity

ответ

1
richTextBox1.Focus(); 
richTextBox1.SelectionStart = richTextBox1.Text.Length; 
richTextBox1.ScrollToCaret(); 

TextBox.SelectionStart Свойство: Получает или задает начальное положение текста, выбранного в текстовом поле. MSDN

Отредактировано: Вот еще один вариант ... если вы используете richTextBox1.AppendText вместо richTextBox1.Text, он должен автоматически поместить курсор в конец.

+0

thanxxxxxxx, но все еще имеет проблему после того, как искомый курсор остановится на последнем символе. пожалуйста, помогите – user1462819

+0

@ user1462819 после этого выше двух строк напишите этот richTextBox1.ScrollToCaret – Talha

+0

thanxxxxxxxx Я использовал этот метод, но все еще имею проблему. пожалуйста, помогите.поэтому я использовал текстовое поле, и я использовал этот метод TextBox1.SelectionStart = textBox1.text.Length; поэтому он работает правильно, но когда я использовал richtextBox, все еще не работает, пожалуйста, помогите мне ............ – user1462819

1

Выполните следующие действия:

richTextBox1.SelectionStart = richTextBox1.Text.Length; 
richTextBox1.Focus(); 

Так что ваше мероприятие должно быть:

private void richTextBox1_TextChanged(object sender, EventArgs e) 
{ 
    string text = richTextBox1.Text; 
    text = text.Replace("a", "අ"); 
    text = text.Replace("අඅ", "ආ"); 
    text = text.Replace("i", "ඉ"); 
    richTextBox1.Text = text.ToString(); 
    richTextBox1.SelectionStart = richTextBox1.Text.Length; 
    richTextBox1.Focus(); 
} 
0

Попробуйте это:

private void richTextBox1_TextChanged(object sender, EventArgs e) 
{ 
    string text = richTextBox1.Text; 
    text = text.Replace("a", "අ"); 
    text = text.Replace("අඅ", "ආ"); 
    text = text.Replace("i", "ඉ"); 
    this.richTextBox1.Text = text.ToString(); 

    TextPointer caret = this.richTextBox1.CaretPosition; 
    caret = caretPos.DocumentEnd; 
    this.richTextBox1.CaretPosition = caret; 
} 

Надеется, что это помогает!

+0

Прошу прощения, если это не поможет, потому что я не мог полностью понять ваш вопрос. – 3aw5TZetdf

1

Вы можете установить значение SelectionStart на число, большее, чем длина текста. Это автоматически поместит курсор после последнего символа. например this.rechTextBox1.SelectionStart = int.MaxValue;

Смежные вопросы