ダイナミックレイアウト
VBが.Netになって「便利になったなぁ」と感じた機能はたくさんありますが、このダイナミックレイアウト機能には感動しました。今までの苦労は、いったい何だったのだろう・・・
VB6/VBAで、Form(UserForm)のサイズを可変にしたとき、実行時にFormの大きさを変更しても、配置したコントロールの位置や大きさは変わりませんでした。そこで、FormのReSizeイベントなどにガリガリとコードを書いて、自前でコントロールを制御したものです。それが、VB 2005では、プロパティを設定するだけで、自動的にやってくれます。
上図のように配置したテキストボックスは、
上のように、実行時にフォームの大きさを変更しても変化しませんでした。
そこで、設計時にテキストボックスの
Anchorプロパティを設定します。
これが初期状態ですので
右と下をクリックして有効にします。
それだけです。これで、実行時にフォームのサイズを変更すると、テキストボックスの大きさが自動的に変化します。
拍子抜けするくらい簡単です。実際にあれこれ試してみるといいでしょう。コントロールが、有効にした四辺と
くっつくようなイメージです。
たとえば、次のように「TextBox1」「Button1」「ListBox1」を配置したとき、
TextBox1 … Top, Left, Right
Button1 … Top, Right
ListBox1 … Top, Bottom, Left, Right
と設定すれば、
フォームの大きさは自由自在ですね。