2016-05-06 4 views
0

強調表示された効果を、自分の前にある行の内容を削除した後、自分のテキスト上でRichTextBoxに設定することはできません。編集後に強調表示されたテキストの色を保持する

コントロールからどれだけのテキストを削除しても、カスタムSelectionColorとSelectionBackColorは常に削除されます。これは、すでにその中に含まれているテキストに設定されています。私の除去方法の

コード:

private void btnRemove_Click(object sender, EventArgs e) 
{ 
    //Remove selected line from RichTextBox 
    richTextBox1.Text = richTextBox1.Text.Remove(richTextBox1.Text.Length - 1, 1); 
    //Remove all blank lines remaining after deletion     
    richTextBox1.Text = Regex.Replace(richTextBox1.Text, @"^\s*$(\n|\r|\r\n)", "", RegexOptions.Multiline); 
} 

私はここで削除したい文字の数が言葉として1である「AND」クリップボードの貼り付け方法によって挿入されたシンプルな画像です。

enter image description here

答えて

1

あなたは決して(私の唇を読んでいない:決して、決して、決して)しなければならないTextに変更したり、/めちゃくちゃに以前のすべての書式が失われますRichtTextBoxか、他のLinesプロパティ。

ですから、この変更する必要があります。この配列と

richTextBox1.Text = richTextBox1.Text.Remove(richTextBox1.Text.Length - 1, 1); 

を:

ファースト選択Textあなたには、いくつかの方法で変更したいの一部:

richTextBox1.SelectionStart = richTextBox1.Text.Length - 1; 
richTextBox1.SelectionLength = 1; 

それを変更することができます。いずれかの使用を削除するには:

richTextBox1.SelectedText = ""; 

または

richTextBox1.Cut(); 

は後者のバージョンはまた、クリップボードにテキストを配置しますが、

まず選択し変更します。それはあなたがそれはあなたがフォーマットのいずれかのタイプを追加または変更する場合、同じルールが適用されます。..いくつかの他の場所にPaste

を可能性があり、その部分の書式設定を保持しますそれをやって

そして、はい、これはあなたがあなたが絶対的に正しい

+0

:-(ループによってRegEx.Replaceを交換する必要があります。すなわち2番目のコマンドは、かなり成長することを意味し、解決のためにあなたに感謝し、その上の非常に良いアドバイス... –

関連する問題