1

可能重复:
在 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();
}

这是我的代码。在这里得到结果后,光标位置在字母的前面,所以我如何在字母之后更新光标位置?请帮忙........

4

4 回答 4

1

您可以将 SelectionStart 值设置为大于文本长度的数字。这将自动将光标放在最后一个字符之后。例如 this.rechTextBox1.SelectionStart = int.MaxValue;

于 2012-07-04T05:29:32.043 回答
1
richTextBox1.Focus();
richTextBox1.SelectionStart = richTextBox1.Text.Length;
richTextBox1.ScrollToCaret();

TextBox.SelectionStart 属性:获取或设置文本框中所选文本的起始位置。MSDN

编辑: 这是另一个选项...如果您使用richTextBox1.AppendText而不是richTextBox1.Text,它应该自动将光标放在末尾。

于 2012-07-03T05:00:10.400 回答
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();
}
于 2012-07-04T04:08:43.663 回答
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;
}

希望这可以帮助!

于 2012-07-04T04:12:36.017 回答