VB2005:RichTextBox選択文字列のFontSize違いを認識するには?

解決


そがっち  2007-01-31 23:35:43  No: 135102

WinXP SP2、VB2005 Expressの環境なのですが、
RichTextBoxで複数のフォントサイズを持つテキストを準備し
(同一テキスト内の一部がサイズ違い)、デバッグ中にテキストを
選択していくと、フォントサイズが違う部分を選択部分に含めた時点で
SelectionFont.Sizeプロパティの値がおかしくなります。
(ex.14pと20pのフォントを選択するとSelectionFont.Sizeは13になる)
この状態を、「複数のフォントサイズが含まれている」と正しく認識
することは不可能なのでしょうか?
フォントの種類自体が違えば、SelectionFont Is Nothingになるので
判別できるのですが、サイズだけ違う場合の判別の仕方がわかりません。

わかる方がいらっしゃいましたら、ご教授ください。


そがっち  2007-02-01 00:03:08  No: 135103

追加で今 気が付いたことなのですが、SelectionFont.Styleについても
似たようなことが言えるようですね。
例えばBoldの文字とBoldでない文字の両方を選択文字列に含むと、
SelectionFontはNull参照(Nothing)にならず、SelectionFont.Boldプロパティは
Falseになったりするようです。
その辺りの判別法も、あったら教えて頂ければ幸いです。


我龍院  2007-02-01 17:34:44  No: 135104

細かい操作をしようとするとどうしても最後は
Rtfに頼るしかないのでしょう。


そがっち  2007-02-01 18:25:11  No: 135105

レスありがとうございます。
Rtfに頼るということは、直接Rtfの中身を解析する、という事でしょうか?
結構面倒そうですね……
アプリの仕様的な部分も含め、色々調べたり考えたりしてみたいと思います。
ありがとうございました。


我龍院  2007-02-01 20:55:41  No: 135106

>Rtfに頼るということは、直接Rtfの中身を解析する、という事でしょうか?
Yes.

>結構面倒そうですね……
そんなに面倒ではなく、RichTextBoxの選択された文字に相当する
Rtfの中に\fsが有るか見るだけですが。
ボールドの場合は\b0を見つけることになります。


そがっち  2007-02-01 22:53:01  No: 135107

度々ありがとうございます。
あ、そうですよね、文字を制限してSelectedRtfプロパティを見ればいいだけですもんね。
rtfファイルの中身を見て「うげ」と思ってしまったもので(汗)
その程度なら簡単に解析出来そうですね。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加