あなたのコードがエンドユーザーにとってどのように機能するのか、私にはわかりません。インデックス 750 にテキストとrtf制御文字があることをどのように知ることができますか?
簡単な解決策は、キャレットの位置を自分で最後に設定することです。
private void richTextBox1_KeyUp(object sender, KeyEventArgs e)
{
string st = richTextBox1.Rtf;
st=st.Insert(750, "void");
richTextBox1.Rtf = st;
richTextBox1.SelectionStart = richTextBox1.TextLength;
}
もちろん、void が挿入された位置にキャレットを配置しようとしている場合、rtf プロパティと text プロパティは異なるものであるため、rtf プロパティでは機能しません。
text プロパティにテキストを挿入しようとすると、次のようになります。
private void richTextBox1_KeyUp(object sender, KeyEventArgs e)
{
string st = richTextBox1.Text;
st=st.Insert(750, "void");
richTextBox1.Text = st;
richTextBox1.SelectionStart = 750 + 4;
}