DOBON.NET DOBON.NETプログラミング掲示板過去ログ

VB既存のコントロールを継承したときの動き

環境/言語:[VB.NET2003]
分類:[.NET]

現在VB.NET2003で開発していますが、GroupBoxを継承したGroupBoxExという
コントロールにラジオボタンを動的に配置しています。
困っている内容としては、インスタンス時の処理でラジオボタンのFontのサイズからラジオボタン、GroupBoxExの割り出そうとしていますが、なぜかデフォルトの
UIゴシックになっていて画面上の設定が取得できません。また、デザイン時と
実行時の動きも違うようで、みなさんは初期処理はどこでやっているのでしょうか?
■No17921に返信(JAVA王さんの記事)
> 困っている内容としては、インスタンス時の処理でラジオボタンのFontのサイズからラジオボタン、GroupBoxExの割り出そうとしていますが、

僕の読解力不足かもしれませんが、日本語的に意味がわかんないです。
それとFont何かでコントロールを特定するのはやめたほうがいいです。
(そういう意味に取れました)
はいこーんさん、ありがとうございます。

おっしゃる通り、日本語ができていませんね。。。
ラジオボタンのTextプロパティに設定されている文字列から
Fontサイズの大きさに収まるようにHeightとWidthを算出して
います。この算出がデザイン時にはできず、Exe実行時にできるのは
なぜかと追求してみたところ、デフォルトFontの値が入っていたのです。
カスタムコントロールの初期化は、普通どこでやるものなのでしょうか?
■No17923に返信(JAVA王さんの記事)
> おっしゃる通り、日本語ができていませんね。。。
> ラジオボタンのTextプロパティに設定されている文字列から
> Fontサイズの大きさに収まるようにHeightとWidthを算出して
> います。この算出がデザイン時にはできず、Exe実行時にできるのは
> なぜかと追求してみたところ、デフォルトFontの値が入っていたのです。
> カスタムコントロールの初期化は、普通どこでやるものなのでしょうか?

コントロール自身ならコンストラクタでしょう。
JAVAやってればそのあたりの感覚はクラスといっしょです。
コントロールもクラスですから。

算出しようとするタイミングがおかしいんじゃないですか?
> コントロール自身ならコンストラクタでしょう。
> JAVAやってればそのあたりの感覚はクラスといっしょです。
> コントロールもクラスですから。
>
> 算出しようとするタイミングがおかしいんじゃないですか?

コンストラクタでやっていますが、フォームに載せたときは、
正しく動作しないのです。でも、なぜかExe実行時には、動作します。
見えないところで何か動いているようで・・・
フォームに載せたときって何のイベントが走るんでしょう?
■No17925に返信(JAVA王さんの記事)
> コンストラクタでやっていますが、フォームに載せたときは、
> 正しく動作しないのです。でも、なぜかExe実行時には、動作します。
> 見えないところで何か動いているようで・・・
> フォームに載せたときって何のイベントが走るんでしょう?

InitializeComponentかな。イベントじゃないけど。
はいこーんさんすいません。
覆すことをいうようですが、コンストラクタの中でInitializeComponentは
呼び出されているので、どうかな?と思いつつやってみましたが、
やはりかわらずです・・・・
そのかわり、InitLayoutでやってみたところうまくいっている気がしますが
一般的に使用するイベントなのでしょうか?

DOBON.NET | プログラミング道 | プログラミング掲示板