[英]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.