WindowフォームはWindowサイズをマウスで変更できますが、この時自動でコントロールのサイズを調整してくれるプロパティが Anchorプロパティです。
Anchroプロパティは全てのコントロールに付いているプロパティです。
Anchroを設定することで、そのコントロールの上下左右の端を、現在の場所に吸着(固定)させることが出来ます。
設定方法はプロパティから Anchor をクリックし、Top,Left,Right,Buttomの中から吸着させたい場所に合わせて直接入力するか、Anchorをクリックした時に表示される十字アイコンから吸着させたい場所をクリックします。
![](https://resanaplaza.com/wp-content/uploads/2020/05/anchor_setting-1024x596.jpg)
では、最初にAnchorプロパティを設定していない状態でWindowフォームのサイズを変更してみましょう。
![](https://resanaplaza.com/wp-content/uploads/2020/05/none_ancher_sample.gif)
コントロールを張り付けた状態だと、Windowサイズを変更してもTextBoxとButtonのサイズは変更されず、無駄に空白部分が広がりました。
Anchroの初期値はTop, Left なので、左端と上端に固定された状態になっています。
右端と下端(Right,Bottom)はどうなっているかというと固定されていないので、TextBoxもButtonもコントロールのサイズは全く変わりません。
では、TexBoxの右端を固定し、Buttonは左端の固定を解除し、右端を固定にしてみましょう。
![](https://resanaplaza.com/wp-content/uploads/2020/05/set_ancher_sample.gif)
今度はWindowsフォームのサイズ変更とともに、TextBoxの横幅が広がったり縮んだりするようになりました。
また、ButtonはWindowフォームの右端に追従して移動し、上下のサイズ変更においては面積が大きく引き伸ばされましたね。
この様に適切にAnchorを設定することで、Windowフォームの広がりに合わせてコントロールのサイズが変更され、Windowフォーム上の無駄な空白を無くすことが出来ます。
まとめ
今回紹介したアンカーをうまく使うと、画面の拡大・縮小に追従して、任意のコントロールを拡大・縮小することができます。
ListBoxやDataGridViewなど、多くの情報を表示させたいコントロールには特に有効です。慣れないうちは意図しない方向に伸び縮みしてしまうかもしれませんが、何度かトライしていくとコツがつかめるので、是非活用してみて下さい。