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

RichTextBoxでの文字の描画

環境/言語:[Win XP HE VB.NET2002]
分類:[.NET]

いつも参考にさせていただいております。
早速ですが教えていただきたいことがあります。
FormにRichTextBoxを貼り付けて、そこに文字を入力したいのですが、
"(" や ")" などを半角英字の後に入力すると、図のように
描画がおかしくなってしまいます。何か対策をご存知の方が
いらっしゃいましたら、ご教授ください。
(この記事にはファイル"1.gif"が添付されていましたが、削除されました。)
こんばんは〜
図をみたんですが、どこがおかしいのか分からないです。
おかしいという場所って
( )が()になってしまうような感じでしょうか?
もしそうだとすると、"("と")"の間にスペースが入っているのではないかなと思います。
テラオメガさんへ
実際やってみたら分かるって。
フォントによっては分かりにくいが、MS ゴシックでこの現象を確認できたよ。


NAMIさんへ
解決法は分かりません。すいません。
■No4919に返信(NAMIさんの記事)

 NAMIさん、こんにちは。深山と申します。

> "(" や ")" などを半角英字の後に入力すると、図のように
> 描画がおかしくなってしまいます。何か対策をご存知の方が
> いらっしゃいましたら、ご教授ください。

 こちらでも試してみました。どうやら半角英数文字を入力することで SelectionFont プロパティが
Arial に変わってしまうのが原因のようです。

 ぐぐってみたところ次のようなものが見つかりました。お試し下さいませ。


[CS:01478] Re: RichTextBox で半角英数字の入 力フォントの正しい設定方法は?
http://www.users.gr.jp/ml/archive/viewer.aspx?name=cs&no=1478

RichTextboxのフォントについて
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=1507
ア口ンアルファさんへ
本当にそうなるんですね。今、『MS ゴシック』にしてやってみたら
分かりました。

NAMIさんへ
ただの感想であって、解決策でもなくてごめんなさい。
深山さんのが一番参考になりますね。
深山さん、アロンアルファさん、テラオメガさん
ありがとうございます。
SelectionFont プロパティがArial に変わってしまうのが原因だったのですね。
APIはまったく知識がありませんので、なんとかKeyPressイベントでSelectionFont
プロパティをRichTextBoxのフォントに合わせ続けることで、クリアしました。
これは、いわゆるバグなんでしょうか?とにかくこれで何とかなりそうなので
とても助かりました。ほんとうにありがとうございました。
解決済み!
> SelectionFont プロパティがArial に変わってしまうのが原因だったのですね。
> APIはまったく知識がありませんので、なんとかKeyPressイベントでSelectionFont
> プロパティをRichTextBoxのフォントに合わせ続けることで、クリアしました。

だいぶ前にRichTextBoxで色分けしようとして同じ問題にぶちあたったとき、
私も同じ解決策しか思いつかなかったので、同様の対処をしてみましたが、
あまりにも重いのでRichTextBoxを使ってのアプリ開発自体を断念しました。
(そのときは趣味のソフトでした。)

> これは、いわゆるバグなんでしょうか?とにかくこれで何とかなりそうなので

個人的にはこの動作が気持ち悪く、ぶっちゃけRichTextBoxって使えないよなって
いつも思うんですが、たぶん仕様だと思います。
OfficeのWordなんかもこういう動作ですから。
(私は不可思議な動作に悩まされるのでWordはかなり嫌いです)

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