■12254 |
Re[2]: フォントが等幅かどうか調べたい |
□投稿者/ Hirotow -(2008/01/06(Sun) 15:45:29)
| 以下のようなコードにしたらサイズ調整はうまくいきました。
tlpMain.RowStyles[0].Height = Font.Height;
pbxHeader.Image = new Bitmap(pbxHeader.Width, pbxHeader.Height);
gHeader = Graphics.FromImage(pbxHeader.Image);
tlpMain.ColumnStyles[0].Width =
gHeader.MeasureString("#00000000#", Font, 1024, StringFormat.GenericDefault).Width;
tlpMain.ColumnStyles[1].Width =
gHeader.MeasureString("#00#01#02#03#04#05#06#07#08#09#0A#0B#0C#0D#0E#0F", Font, 1024, StringFormat.GenericDefault).Width;
pbxLineNo.Image = new Bitmap(pbxLineNo.Width, pbxLineNo.Height);
gLineNo = Graphics.FromImage(pbxLineNo.Image);
pbxHexView.Image = new Bitmap(pbxHexView.Width, pbxHexView.Height);
gHexView = Graphics.FromImage(pbxHexView.Image);
pbxTextView.Image = new Bitmap(pbxTextView.Width, pbxTextView.Height);
gTextView = Graphics.FromImage(pbxTextView.Image);
リンク先が非常に参考になりました。
ありがとうございます。
ただどのタイミングで再描画を呼び出すべきかいまいちわかりませんのでご教授をいただけると幸いです。
■No12252 (やじゅ さん) に返信
> ■No12251 (Hirotow さん) に返信
>>そこで設定可能なフォントを等幅フォントのみに制限したいのですが検索しても見つかりません。
>>どなたかご存知の方がいましたらご協力をお願いいたします。
>
> フォント名だけでは判断出来かねますからね、
> しいて言えば、特定の文字の大きさを調べて同一なら等幅と判断するくらいですかね。
> 特定の文字が何なのかは、いろいろな文字で調べてみるといいのでは。
>
> 文字列を描画したときの大きさを計測する
> http://dobon.net/vb/dotnet/graphics/measurestring.html |
|