- PR -

動的に作成したラジオボタンに適切なWidthを指定したい

1
投稿者投稿内容
DRTAK
会議室デビュー日: 2005/10/03
投稿数: 2
投稿日時: 2005-10-03 21:57
Windowsアプリケーションで、動的にラジオボタンを作成しています。

作成された一つ一つのラジオボタンのWidthプロパティに、文字列の長さ(幅)に応じた適切な値を設定したいのですが、可能でしょうか。

検証してみた結果は以下の通りです。
・ラジオボタンのTextを改行なしにする設定はなさそう
・Textの文字列からバイト数を取得して、「Width = バイト数×定数」で実装。
 色々な長さで試した結果定数が定まらず、他に良い方法が無い場合検討することに。
・可変長となるコントロールにテキストを入れ、Widthを計算してもらう。⇒可変長となるコントロールが見当たらず。

何か良いアイディアがありましたら、ご教授ください。
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2005-10-03 22:20
CreateGraphicsメソッドとMeasureStringメソッドでできそうです。
#ボタンイメージの分はあとから加算ということになるかな。。。
#よく調べてないので求めることができるかもしれません。
がらす
ベテラン
会議室デビュー日: 2005/07/14
投稿数: 99
投稿日時: 2005-10-04 09:42
このページが役に立つかもしれません。
http://dobon.net/vb/dotnet/graphics/measurestring.html
DRTAK
会議室デビュー日: 2005/10/03
投稿数: 2
投稿日時: 2005-10-04 10:57
ご返答ありがとうございます。

完璧な回答でした。
がらす様の参考ページ(DOBON.NET)のサンプルが非常に助かりました。

「私の検証した結果」の2番目と3番目の融合という形で実現できました。

ラジオボタン自体にCreateGraphicが無かったので、一旦ラベルで文字列を描画し、
そこからMeasureStringで文字のサイズを取得しました。
その後まどか様の仰るとおり、ボタンイメージ分の幅を追加しました。

ありがとうございました。
1

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