C#_自動でスクロールバーを一番下に持ってくる

動的にpanel の中にコントロ ールが増えていき、
スクロールする領域が増えた時、自動で一番下にバーの位置を設定。

ソース

//スクロールをpanel1の底へ
panel1.AutoScrollPosition
= new Point(panel1.AutoScrollPosition.X, panel1.Height + panel1.VerticalScroll.Value);

※水平スクロールバーはない。
※ AutoScroll は True。
※ VerticalScroll.Value は( 垂直バーの )現在位置を表す。

 

AutoScrollPosition

スクロールさせる位置を設定する。
または
位置を取得する。

設定
スクロールの開始位置からどれだけ離れるかを、
正の整数で設定する。
水平スクロールバーでは右、垂直スクロールバーでは下に
移動させるほど大きな値となる。

取得
スクロールの開始位置からどれだけ離れているかを、
負の整数で取得できる。

ex )
AutoScrollPointで (100, 200)という位置を設定した後、
AutoScrollPointを取得すると(-100, -200)となる。

 

↓ のようなメソッドもある。

ScrollControlIntoView

引数に指定したコントロ ールまでスクロールする。

親コントロ ール.ScrollControlIntoView( 子コントロ ール )

ex)

panel1.ScrollControlIntoView(buttonA);
//panel1 の上に乗っている buttonA が見えるまで、
//スクロールする。

 

こちらから。
http://blogs.wankuma.com/mrt/archive/2008/05/27/139640.aspx
https://dobon.net/vb/dotnet/form/autoscrollposition.html

 

以上。

ソース見返して、これ必要?と思うコードあるが
現状想定通りに動いているのでこのままにしておく。