3

フォントのスタイル/色を変更するという意味ではなく、特定の色でブロックを選択するという意味で、RTBのテキストの特定の部分を強調表示する必要があります。これは、デバッグモード中にVisualStudioが行を強調表示する方法と似ています。

ここで重要なことは、richtextbox.select関数を使用せずに前述の機能を実現することですこれは、私が持っているrichtextboxが定期的に更新され、更新のたびにselect関数を呼び出すと、ユーザーがテキストをドラッグするのに苦労するためです。それを起こしたくない。

rtfの編集の途中で解決策を聞いたことがありますが、これを行う方法が完全にはわかりません。助けていただければ幸いです。

4

2 に答える 2

4

編集:ちょうど実現された質問はwinformsのためです。次の回答はWPFに関するものであり、誰かが有用だと思った場合に備えて、削除するのではなく、そのままにしておきます。

TextRange(...)を使用してテキストを取得し、背景を適用します。例:

TextRange tr = new TextRange(position, nextPosition);
var Br = new SolidColorBrush(Color.FromScRgb(alpha, 1f, 1f, 0f));
tr.ApplyPropertyValue(TextElement.BackgroundProperty, Br);

ただし、更新メカニズムを調べて、より良い解決策を考え出す必要があるかもしれません。

于 2012-06-25T09:07:12.007 に答える
1

これは、リッチテキストボックスのSelect()関数を使用しません。適切な座標でstart and end index選択したものを使用するだけです。and updates the regionwithcolour

    // change the co-ordinates as per the selection in the run-time 
    richTextBox1.Text = "Select some text";
    richTextBox1.SelectionStart = 0;
    richTextBox1.SelectionLength = 4;
    richTextBox1.SelectionBackColor = Color.LightBlue;

SeleLight Blue上記のコードで選択されます。

于 2012-06-25T10:12:19.997 に答える