[英]RichTextBox caret position when inserting rtf string
我正在尝试将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
的长度时才会发生这种情况。
我无法理解您的代码对最终用户应该如何工作。 您甚至怎么知道在索引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属性是不同的东西。
如果尝试在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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.