|
分類:[.NET 全般]
こんにちは。VB初心者です。
現在、コントロールをグループ化するクラスを作成しています。座標やサイズを、指定した比率で縦横にズラッと整列させるだけのものです。
その中でリストを使っているのですが、VBのリストは型指定が必要であり、今回はコントロール全般を入れる必要があったり、構造を全部知っているほうが気分が良いので自作のリストを使っています。
リストに入れたコントロールへのアクセスは以下のような感じです。
Member.Get(Number).Item
Memberがリストクラスで、Get()が引数で指定した位置にある参照を返して、Itemが、Object型で何でも入れられるフィールドです。
Object型ですから色々問題がありますが、例えばMe.Member.Get(Number).Item.Heightという書き方でリストに入れたコントロールの高さにアクセスできます。コントロール全般なんでも入れるという感じなので、今のところキャストしていません。
実際設定自体はできています・・・が、何か変です。
例えばMe.Member.Get(Number).Item.Height+=1 と書いても、全く値が変わりません。ちゃんと参照できていないのかなって思ってMe.Member.Get(Number).Item.Height=1000とかやるとちゃんと反映されます。
Me.Member.Get(Number).Item.Height=140.3333333(←143.33は計算した値) を入れて、設定した値を確かめると136になっています。
これはリストからのアクセスが問題でしょうか?それともコントロールの仕様でしょうか?コントロールの単位ってそもそもなんなんでしょうか?
|