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

以下をせよ:

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 に答える
1
richTextBox1.Focus();
richTextBox1.SelectionStart = richTextBox1.Text.Length;
richTextBox1.ScrollToCaret();

TextBox.SelectionStartプロパティ:テキストボックスで選択されたテキストの開始位置を取得または設定します。MSDN

編集済み: 別のオプションがあります...richTextBox1.AppendTextの代わりに使用するとrichTextBox1.Text、カーソルが自動的に最後に配置されます。

于 2012-07-03T05:00:10.400 に答える
1

SelectionStart 値は、テキストの長さよりも大きな数値に設定できます。これにより、最後の文字の後にカーソルが自動的に配置されます。例えば this.rechTextBox1.SelectionStart = int.MaxValue;

于 2012-07-04T05:29:32.043 に答える
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 に答える