PART10: 標準コントロールはどうなった?(2002年4月4日〜)
さて昨日、ADO.NETのデータ確認のために
Windows.Forms.TreeView (ツリービュー)を使ってみました。
そこで Node オブジェクトの扱いが多少変わったのを発見し、他のコントロールはどうなったんだろうと
気になり夜も眠れません。
というわけで、しばらくはコントロールを使って遊んでみようと思います。
新規の Windows Application プロジェクトを作成し、いろいろと貼り付けてみたところ、
どうやら、標準プロパティと呼ばれるものもいくつか追加されているようです。
まず目に付くのは ユーザー補助 に関するプロパティの追加。これはVB6にはなかったものです。
配置関連ではPart.4でも紹介した Dock プロパティやAnchor プロパティといったものが真新しいところでしょうか。
では、まずはVB6では標準コントロールとよばれていたものから順にみてゆきます。
Labelコントロール
以前一度書いたように Caption プロパティが Text
プロパティになったところ以外は基本的な部分はほとんど変わりません。
変わったところは...、Image、ImageAlign、ImageList、ImageIndex
といったImage関連のプロパティが追加になっています。
そう!ラベル上に画像が配置できるのです。
Image関連は別として、私が一番嬉しかったのは TextAlign プロパティです。
VB6までの Label コントロールは Align
プロパティで左右の文字揃えはできたものの、上下の縦方向への文字配置は指定できませんでした。
ですから、例えば下図のようなフォームデザインを実現しようとするならば、従来なら Shape
コントロールなどと組み合わせて配置する必要がありました。
これからはそんな面倒なことはしなくて良いようです。
ラッキー!
ラベルコントロールに関しては最後に一つだけ大きく違う点、
LabelコントロールはVB6までのようにウィンドウレスコントロールではなく、TextBox
等その他のコントロールと同じく、一つのウィンドウになりました。
当然ウインドウハンドルを取得するための Handle プロパティも存在します。
試しに Spy++ で確認してみると、WindowsForms10.STATIC.app1
というクラス名を持つウィンドウであることが確認できます。
クラス名に STATIC という表現が使用されているってことは、Windowsではおなじみの STATIC
ウィンドウクラスとおそらく同様のものなんでしょうね。
突然ですが、そろそろ AM 3:00。
続きは明日にして私は眠ります。
...と書いたのは4月4日の 午前3時のことで、今は4月5日の午前4時。
実はただいま会社から帰宅しました。(もちろん仕事していました)
もう、眠いのを通り越してナチュラルハイ状態です。
本当はさっさと寝ちゃおうかとも思ったんですが、なんだかもったいない気もして...。
でもしかし、そんなに長い時間おきていられる自信もないので、本日はちょっとしたもので遊んでみます。
では改めて、アンカーで遊ぼう!
昨日お話しましたが、標準プロパティとして、Anchorプロパティが今回追加されました。
で、このAnchorで何ができるかというと、コントロールの指定した端をコンテナウィンドウに対して固定することができるのです。
でも別に今までもできなかったわけではなく、自分で座標計算したりだとか、市販のOCXを使えば可能でしたが、標準機能として搭載されたってのは非常に嬉しいことです。
まずはこんなフォームを作成してみました。
©やなせたかし/フレーベル館・TMS・NTV
これをPictureBoxのサイズはメインフォームのサイズにあわせてリサイズし、OK、キャンセルボタンは右下に固定するように設定しましょう。
最初の課題、PictureBoxをフォームにあわせてリサイズするには、PictureBoxの上下左右にAnchorを指定、つまりフォームがどれだけサイズが変わっても常に上下左右の間隔だけは固定される設定にします。
あとの各ボタンに関しては右下に固定ですから、Bottom, Right を指定します。
とまぁ、これだけ後は実行。
©やなせたかし/フレーベル館・TMS・NTV
いとも簡単にできてしまいました。フォームをフルスクリーンにしても大丈夫。
この間わずか20秒。便利になったものです。今まで自分で位置計算していたのがばかばかしくなってきます。
関係ないですが、PictureBoxでアニメーションGIFが動いているぅっ!!
さて寝よっ! |