簡體   English   中英

插入rtf字符串時RichTextBox插入符的位置

[英]RichTextBox caret position when inserting rtf string

我正在嘗試將字符串插入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上您有文本和控制字符?

快速的解決方案是自己將插入符號的位置設置為結尾:

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的位置,那么這對您的屬性無效,因為和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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM