- - PR -
Windows Form での文字列の幅について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-03-06 16:57
どうもお世話になります。
等幅フォントに設定したTextBoxとLabelを縦に並べ 同じ文字列を設定して実行すると 表示される幅がどうも違うみたいです。 どうしてそうなるのか原因を教えてください。 開発環境はWindowsXP .NET FrameWork1.1 VB2003です 宜しくお願いいたします。 |
|
投稿日時: 2006-03-06 22:42
たぶん、LabelコントロールではFlatStyleプロパティがSystem以外の場合に、
グリッド フィッティングが行われている為だと思います。 .NET Framework2.0ではFlatStyleプロパティの値に関わらず、 グリッド フィッティングは行われないようです。 |
|
投稿日時: 2006-03-07 15:51
回答ありがとうございます。
そうなんですか。 他のコントロールでも試すと表示専用だとlabelと同じになるみたいですね。 (Button、GroupBoxとか) MeasureStringで計ってWidthを設定すると labelに設定された文字は折り返されちゃいましたし。 とりあえず、2003ではあわすのは無理そうですね。 |
|
投稿日時: 2006-03-07 16:52
可能です。
ですが、状況が良く掴めていません。 どのような事がしたいのでしょうか? |
|
投稿日時: 2006-03-07 20:24
やりたいことは
左位置が同じTextBoxとLabelが縦に並べて表示されているFormがあるんですが 同じ長さの文字列を表示した場合に文字列の終端位置が違うので あわせることは出来ないのかな?ということになります。 txt:−−−−+−−−−1 lbl:−−−−+−−−−1 標準だと「1」の位置がずれてるので・・・ |
|
投稿日時: 2006-03-07 21:17
であればFlatStyleプロパティをSystemにするだけで可能ではないでしょうか?
TextBoxにはエッジがあるので、Labelをその分左にずらさないといけませんが。 また、MeasureStringでTextBoxと同じ表示幅を取得したい場合は、 引数のStringFormatにStringFormat.GenericTypographicを指定します。 |
|
投稿日時: 2006-03-07 21:45
FlatStyleプロパティをSystemにすることで目的が達成できました。
ありがとうございます。勉強になりました。 |
1