我正在尝试将rtf字符串插入RichTextBox
。这是KeyUp
事件形式RichTextBox
:
private void richTextBox1_KeyUp(object sender, KeyEventArgs e)
{
string st = richTextBox1.Rtf;
st=st.Insert(750, "void");
richTextBox1.Rtf = st;
}
问题在于,每次更新后,插入符号都会在插入的文本之前移动,我希望将其保留在最后。我注意到只有当我修改st
的长度时才会发生这种情况。
答案 0 :(得分:0)
我无法理解您的代码应该如何为最终用户工作。你怎么会知道在索引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属性,这将不起作用,因为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;
}