- - PR -
RichTextBoxの文字色
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-10-26 09:28
C#で作っているプログラムの、
RichTextBox内の文字色を変更したいのですが、 以下のようなやり方しか思い浮かばず、困っています。 int intStart = 1; //変更位置 int intLen = 5; //変更長 richTextBox1.Select(intStart,intLen); richTextBox1.SelectionColor = System.Drawing.Color.Blue; この方法だとSelectをするタイミングで文字がハイライトされ ちらついてしまいます。 何か方法があれば、教えていただけませんか? ※具体的にやりたいのは、 キーワード文字の色を変更したいのです。 よろしくお願いします | ||||||||
|
投稿日時: 2004-10-26 14:31
よくわかりませんが
VBAの場合の Range 見たいな物は見えないから rtf 全体を取り出し replaceall のようにして、戻すとか?rtfの知識が必要ですが。 TextBoxにフォーカスを入れずに、Hide何とか状態でSelectionを 操作できるか?(裏技度高し) | ||||||||
|
投稿日時: 2004-10-26 22:13
南部です。
こんな感じの継承クラスを作って、
こんな感じで色を変えていけば、よさげです。 #これが良いやり方かは、わかりませんが。 ちなみに、画面外の文字まで選択しようとすると、 スクロールバーがちらつきます。 #最小範囲の更新だけ行うと思いますが、、、 | ||||||||
|
投稿日時: 2004-10-27 00:57
WM_SETREDRAWってRICHEDITはきかないんでしたっけ?
こんな感じのクラスを作って、更新するときにBeginUpdate,EndUpdateを呼び出すと。 [ メッセージ編集済み 編集者: ya 編集日時 2004-10-27 01:01 ] | ||||||||
|
投稿日時: 2004-10-27 09:17
WndProcをオーバーライドする方法で解決できました。
しかし「0x000f」とは? ありがとうございました。 | ||||||||
|
投稿日時: 2004-10-27 09:48
南部です。
yaさんへ: WM_SETREDRAWってこう使うんですね。 勉強になります。 adtkさんへ: 0x000fはWM_PAINTです。 yaさんが提供してくれたコードのほうが、「良い」と思います。 #ローカルで実行するなら。 | ||||||||
|
投稿日時: 2004-10-27 11:12
提示されているコードで考えるなら
Enabled = false でもいけそうな気がします。
こんな感じかな? | ||||||||
1
