ダイナミックレイアウト

このエントリーをはてなブックマークに追加  


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

と設定すれば、



フォームの大きさは自由自在ですね。


このエントリーをはてなブックマークに追加