- PR -

textboxの複数行表示が崩れる

1
投稿者投稿内容
ひろし
ぬし
会議室デビュー日: 2002/09/16
投稿数: 390
お住まい・勤務地: 兵庫県
投稿日時: 2004-03-27 11:41
質問1
textBoxの表示が崩れる原因が分かりません。
質問2
textBoxのプロパティ群の設定が気にはなっているのですが、
数が多すぎて、どのプロパティに着目すれば良いか分かりません。

症状
textBoxに"\r\n"混じりの文字列を代入する時、表示が崩れることがあります。
具体的には、左端の空白が勝手に削除されたり、1行中の表示順序が逆転したりします。
フォントの文字化けは一切起こっていません。
特定の文字パターンの場合に必ず再現します。
文字列をテキストファイルに吐き出してメモ帳で開いてみると
崩れずに表示されることから、textBoxが勝手に整形を試みているように思えます。

環境
・WindowsXP Pro + VS .NET 2003
・Windowsアプリケーション

textBoxの設定
・Multilineプロパティ=True
・フォントは全てMSゴシック

文字列の性質
・漢字が入っています。
・整形のため"\r\n"が挿入されています。
・"\r\n"以外にエスケープシーケンスは使われていません。
・1行(つまり\r\nまで)の横幅はtextBoxよりも短く収まるように整形されています。
・特殊な漢字は含まれていません。(JISでいうと第一水準相当)

// 一応こんな感じです。
// 実機が近くにないので少ない情報ですみません

textBox1.Multiline = true;

const string NewLine = "\r\n";
StringBuilder sb = new StringBuilder();
sb.Append(" …日本語… ");

sb.Append(" …日本語… "+NewLine);
sb.Append(" …日本語… ");

sb.Append(" …日本語… "+NewLine);

string str = sb.ToString();
// strをテキストファイルに出力しメモ帳で表示しても崩れません
// けれどもtextBox1の表示は崩れることがあります
textBox1.Text = str;
textBox1.Update();


1

スキルアップ/キャリアアップ(JOB@IT)