我想在我的RichTextbox
中,特定位置和特定顏色中插入一個字符串。所以我試着爲RichTextbox
類的方法AppendText()
添加一個擴展。在RichTextbox中使用特定顏色在特定索引處插入文本
public static void AppendText(this RichTextBox Box, string Text, Color col, int SelectionStart)
{
Box.SelectionStart = SelectionStart;
Box.SelectionLength = 0;
Box.SelectionColor = col;
Box.SelectionBackColor = col;
Box.Text = Box.Text.Insert(SelectionStart, Text);
Box.SelectionColor = Box.ForeColor;
}
我試過在名爲RichTextBoxExtension
的類中使用它。結果不符合我的預期。該字符串已插入,但未與所選顏色一起使用。 有沒有更好的方法來做這個功能?
編輯:我認爲這可能是有趣的告訴你爲什麼我需要這個功能。實際上,當用戶寫一個右括號時,我想高亮(或彩色)相關的左括號。 因此,例如,如果用戶編寫(Mytext),當用戶點擊「)」時,第一個括號將變爲彩色,並將選擇保留在該括號上。
設置Text屬性將導致丟失所有格式。您必須改爲指定SelectionText屬性。恢復SelectionStart和SelectionLength屬性是必需的。你會發現你自己的顏色選擇錯誤。 –
我知道這是一個WinForms問題,但如果有人從WPF-o-sphere失敗,可以使用'Document'屬性很容易地訪問RichTextBox的底層'FlowDocument'。 - 這有一個更強大的編輯API(並且應該優先於WinForms編輯器,其他高級功能如拼寫檢查等)。 - 如果您被困在WinForms中,可能值得考慮在'ElementHost'控件中託管WPF Rich Text編輯器。 – BrainSlugs83