DOBON.NET DOBON.NETプログラミング掲示板過去ログ

RichTextBoxで選択しないで特定の文字の背景色を変えたい

環境/言語:[C# .NET Framework2.0(4.0)]
分類:[.NET]

いつもお世話になっています。

RichTextBoxで文字を選択せずに特定の文字の背景色を変えたいです。
逆に特定の文字の背景色も取得したいです。

Google先生にいろいろ聞いてみたのですがほとんどの資料が選択してする方法で、選択をしないでする方法は全く見当たりませんでした。

RichTextBoxを非アクテイブにするだけで速度が2.3倍ほど違うかったです。
同じような処理を何万回とするのでもっと早くしたいです。

速度のことでソフト(の評価)が叩かれたのでなんとかして解決したいです

.NET Frameworkのバージョンは2.0で作ってますがこの際4.0でもいいです。
■No29294に返信(meruruさんの記事)

Rtfに自前で設定するようにするとか。書式はどっかで調べて下さい。
CodeProjectで探してみたところ、

C# - Formatting Text in a RichTextBox by Parsing the Rich Text Format (RTF) - CodeProject
http://www.codeproject.com/KB/cs/RTFSyntaxColour.aspx

が見つかりました。参考になるでしょうか。
おはようございます。

meruruさんが何を作っているのかが分からないのでこの場合に求めるものがよく分からないのですが、
作りたいのは、
Wordやワードパッドのように書式つきデータ自体を維持する必要のある書式つきデータ用エディタですか、
それともプログラミングやHTML作成をする際のコードエディタのように、編集で必要なのはあくまでプレーンテキストのみで
それに色をつけて表示さえしてくれればよいというものですか。

後者なら、今の状態を気にせず常にTextプロパティを元データとして文字列処理してできあがったものを
Rtfプロパティに代入するだけでよいのでRichTextBoxが扱えるタイプのRTFのことが分かっていればかなり簡単ですが、
前者はとてつもなく面倒です。(RTFだからではなくRichTextBoxが吐くRTFのスタイルのせいなのが大きいです。)
(なお、管理人のどぼんさんが示されているcodeProjectのサンプルは後者方面の処理です。)

また、「特定の文字」としていますが、実際に望む対象はおそらく単一文字ではなく「文字列」ですよね?
(リッチな書式つきデータのエディタを作りたい場合の話ですが、文字か文字列かでかなり処理が変わるというか増えます。)
■No29294に返信(meruruさんの記事)
> いつもお世話になっています。
>
> RichTextBoxで文字を選択せずに特定の文字の背景色を変えたいです。
> 逆に特定の文字の背景色も取得したいです。
>
> Google先生にいろいろ聞いてみたのですがほとんどの資料が選択してする方法で、選択をしないでする方法は全く見当たりませんでした。
>
> RichTextBoxを非アクテイブにするだけで速度が2.3倍ほど違うかったです。
> 同じような処理を何万回とするのでもっと早くしたいです。
>
> 速度のことでソフト(の評価)が叩かれたのでなんとかして解決したいです
>
> .NET Frameworkのバージョンは2.0で作ってますがこの際4.0でもいいです。


"syntax textbox"などで検索するとRtf使用したサンプル結構見つかります。
codeproject内でも検索すると結構ヒットします。


なお私はプログラムの詳細を把握していませんが下記はおもしろそうです。(Rtf未使用のようです)
http://www.codeproject.com/KB/edit/FastColoredTextBox_.aspx

以上。参考になれば幸いです。
2011/10/27(Thu) 22:00:57 編集(投稿者)



返信ありがとうございますm(_ _)m

CodeProjectってかなり便利なソースがあるのですね・・・
知りませんでした

作ろうとしているのはSDKでステップインで次処理するところを黄色くしてみることです。
ただ、選択してから色を変えるとなると速度がかなり遅くなってしまって困っていたのが質問をした理由です。
Googleでも2時間ほどは粘りました!「C# rich 選択せず 色」とか・・・

こういうことは英語サイトのほうが絶対にいいですね
わからないことがあったら今度からはCodeProjectの内容も確認してから質問することにします

ご迷惑をかけてすみませんでした
そして、ありがとうございます

ついでにBrainF*ckSDKの中の人です。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板