リッチテキストの色分け
- 題名: リッチテキストの色分け
- 著者: 狂死労
- 日時: 2007/11/03 0:07:21
- ID: 20862
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: リッチテキストの色分け
- 著者: y4yama
- 日時: 2007/11/06 7:52:12
- ID: 20867
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: リッチテキストの色分け
- 著者: 狂死労
- 日時: 2007/11/07 12:56:43
- ID: 20877
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
こんばんは!
何度やってもうまくいかないので質問させて下さい。
検索してもヒットしませんでした。(キーワードが悪いのかな?)
リッチテキストで色分けを行う処理を実装しようと思い、頑張っているのですがどうしてもうまくいきません。自分の頭では無理っぽいですのでお力を。
条件としては、リッチテキストを快適に使う為に、リッチテキストを一行ずつ読み込んで置き換える処理はNGって事で。RTFを直接置き換えるのもNGで。
理由は、RTFを直接置き換えると確かに高速ではありますが、この方法でも容量の大きい内容の文章では違和感があり、快適に使う事が出来ません。そこで、自分が考えている方法として、対象の文字が入力されたら即色分けという処理を考えております。不可能かも知れませんが、一つ力を貸して下さい。
以下のソースは、リッチテキストのチェンジイベントにて行っておりますが、IMEモードが非表示であれば思った動作を行ってくれます。しかし、IMEがオンの状態だと、「<」や「>」を認識してくれません。つまり、変換中の文字はスルーされてしまいます。これを認識できるような命令などはあるのでしょうか?
//////////////////////////////////
Dim pos As Integer = RichTextBox1.SelectionStart - 1
With RichTextBox1
If .Text.Chars(pos) = "<" Then
.SelectionStart = .SelectionStart - 1
.SelectionLength = 1
.SelectionColor = Color.Blue
.SelectionStart = pos + 2
ElseIf .Text.Chars(pos) = ">" Then
.SelectionColor = Color.Black
End If
End With
//////////////////////////////////
上記のようなソースですが、やはりこのソースでは駄目なのでしょうか?
よろしくお願いします。