C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 文字列幅の計算方法


(過去ログ 27 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■12842 / inTopicNo.1)  文字列幅の計算方法
  
□投稿者/ 750 (1回)-(2008/01/18(Fri) 14:45:37)

分類:[VB.NET/VB2005] 

開発環境はVB2005です。

現在あるシステムの仕様検討中ですが
そのなかで、画面のレイアウト、帳票レイアウトを検討しています。

そこで苦労しているのが
例えば
 1:MSゴシック・12PTの文字20文字はTextBoxの幅はどれくらい必要なのか
 2:帳票で幅600px内にfontsize(pt)に対して何文字はいるのか
が算出できないことです。

なにかそういった計算方法があるのでしょうか
またそういった情報がのっているサイトがあるのでしょうか

引用返信 編集キー/
■12844 / inTopicNo.2)  Re[1]: 文字列幅の計算方法
□投稿者/ よねKEN (108回)-(2008/01/18(Fri) 15:09:02)
2008/01/18(Fri) 15:10:25 編集(投稿者)

> そこで苦労しているのが
> 例えば
>  1:MSゴシック・12PTの文字20文字はTextBoxの幅はどれくらい必要なのか

MS ゴシックとのことで等幅ですから、実際にデザイナでTextBoxを配置して
全角、半角のどちらかわかりませんが20文字分のテキストを入れて、
1文字分くらいの余白を考慮したサイズを設定する方法はいかがでしょうか。
(等幅フォントの?ポイントの場合に半角何文字分ならxxxピクセル
といった対応表を作っておくと便利かと思います。)

>  2:帳票で幅600px内にfontsize(pt)に対して何文字はいるのか
> が算出できないことです。

こちらも等幅であれば、実際にサンプル帳票を作って、
何文字入るのかを最大桁数を確認する方法でよいと思います。
ある程度実行環境を限定できる場合はこういう方法もありだと思います。

プロポーショナルフォントを考慮する必要がある場合や、
ユーザがフォントを自由に設定できる場合や、
実行環境にある程度の想定が不可能な場合などはもう少し考慮が必要かもしれません。

後、寸法をプログラムで計算するなら
GraphicsクラスのMeasureStringメソッドが使えます。

引用返信 編集キー/
■12848 / inTopicNo.3)  Re[2]: 文字列幅の計算方法
□投稿者/ y4yama (53回)-(2008/01/18(Fri) 16:03:31)
> 後、寸法をプログラムで計算するなら
> GraphicsクラスのMeasureStringメソッドが使えます。
これを、以前に試したら、幅+3 とかの値が返ってくるようでした・・

Label1.AutoSize =Trueの時に

        Label1.Text = TextBox2.Text   ' WWWWWWWWWW   など
        Console.WriteLine("w=" & Label1.Width)
        TextBox2.Width = Label1.Width + 4

結構、それらしく幅が決まりました。(ごくシロートの発想です)

引用返信 編集キー/
■12850 / inTopicNo.4)  Re[3]: 文字列幅の計算方法
□投稿者/ Tom Yama (14回)-(2008/01/18(Fri) 16:51:31)
No12848 (y4yama さん) に返信
>>GraphicsクラスのMeasureStringメソッドが使えます。
> これを、以前に試したら、幅+3 とかの値が返ってくるようでした・・
MeasureStringは、多少広めの値が返ってくるようです。
http://msdn2.microsoft.com/ja-jp/library/6xe5hazb.aspx

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -