C#メモ ウィンドウサイズの変更に合わせてテキストボックスなどのサイズを自動調整してみる

C#,プログラミング

忘れそうなので、メモしとこうと思って…。

メモの内容はこんなこと。
たとえば、テキストボックスが真ん中に配置してあるウィンドウを作ったとする。
※テキストボックスのMultilineプロパティがTrueになってること前提

3198_01

デフォルトの設定のままだと、ウィンドウサイズを変更するとテキストボックスの
サイズは変わらない。

3198_02

テキストボックス自体のサイズをウィンドウサイズの変更に合わせて自動調整するには、
テキストボックスのAnchorプロパティをAllもしくはTop,Bottom,Left,Right全部を指定する。

たとえば、こんなふうにする。

SampleTextBox.Anchor = AnchorStyles.All;

※SampleTextBoxはテキストボックスのクラス名

もしくは、書き方はまぎらわしいけど…、

SampleTextBox.Anchor = (System.Windows.Forms.AnchorStyles)
	(
		System.Windows.Forms.AnchorStyles.Top
		| System.Windows.Forms.AnchorStyles.Bottom
		| System.Windows.Forms.AnchorStyles.Left
		| System.Windows.Forms.AnchorStyles.Right
	);

って具合にTop,Bottom,Left,Rightすべてを指定する。
そうすると、こんなふうになる。

3198_03

これを応用してSplitContainerにTextBoxを貼って、TextBoxのAnchorプロパティだけ
設定して実行すると「プロパティの値が無効です。」ってメッセージが出た。
せっかく設定したプロパティの値が無視されちゃって困った…。

3198_04

詳細ボタンをクリックすると、こんなメッセージがでたけど、何が何だか…。

3198_05

いろいろ調べた結果、SplitContainerのAnchorを同じふうにAllに設定にして解決。
親子関係があるみたいだねぇ。

他のGUIパーツもAnchorプロパティがあるものは同じようにウィンドウサイズに合わせて
サイズを自動調整してくれるみたい。
んまま、そんなこんなで参考になれば良いな。