PictureBoxコントロールの移動(プロパティ変更)
・Locationプロパティの変更により、PictureBoxをプログラムで瞬間移動してみよう。
・Width, Heightプロパティにより、PictureBoxの大きさを知ろう。
○PictureBoxの位置制御;Left, Top プロパティ
- PictureBoxコントロールの位置は、次のように、左側と上側の距離を指定して移動させることができる。
PictureBox1.Left = 200 'PictureBox1の左側をウィンドウの左から200の距離にする
PictureBox1.Top = 100
'PictureBox1の上側をウィンドウの上から100の距離にする
- この2行は順次実行させるので、実際には、PictureBox1がX方向に移動した後、Y方向に移動する。
しかし、コンピュータの実行速度が速いので、一度に移動しているように見える。
- では、PictureBox1を今いる位置から右に100だけ移動させるにはどのようにしたらよいだろうか?
- 右に100というのは、x座標で+100すればよい
- 今いる位置(x座標)は分かる、これに+100すれば右に100だけ動くはず
- PictureBox1.Left = Me.Size.Width : PictureBox1.Top = Me.Size.Height
が実行されると、結果として、一番右の一番下より右下(タイトルバーや枠の太さの関係)に移動する。
実際には画面からははみ出しているので、消えたように見える(ウィンドウの大きさを変えると見える)。
ぴったりと画面の右下に移動するには、以下のPictureBoxの大きさは勿論のこと、タイトルバーや枠の太さを考慮にいれる必要がある。
○PictureBoxの大きさ;Size.Width, Size.Heightプロパティ
- ピクチャーボックスコントロールの大きさ、つまり幅と高さは、それぞれ Size.WidthプロパティとSize.Heightプロパティによって示される。
- 例えばPictureBox1という名前のピクチャーボックスコントロールの、幅は、PictureBox1.Size.Width で参照することができる。
- フォームの大きさ(外側全体)は、Me.Size.Width, Me.Size.Heightで参照することができる。
また「Size」取りMe.Width, Me.Heightでもよい。但し、「Me.」は省略することができる。
ここでややこしいのは、このフォームの大きさは、タイトルバー、枠の太さを考慮しないと、
フォームの内側の大きさ、位置がわからないこと。
- 下図参照
- 図ではPictureBox1などの具体例ではなく、PictureBoxと表記しているので注意
- 例えば、フォーム画面の内側の右下の座標は、(Me.Width - 8,
Me.Height - 30 - 4 )である。
- よって、
PictureBox1.Left = Me.Width - 8
PictureBox1.Top = Me.Height - 30 - 4
の2行を実行すると、PictureBox1は、画面からぎりぎり右下に移動することになる。
(実行後にウィンドウをちょっと大きくすると移動しているのがわかる)
- また、
PictureBox1.Left = Me.Width - 4 - 4 - PictureBox1.Size.Width
PictureBox1.Top = Me.Height - 30 - 4 - PictureBox1.Size.Height
の2行は、PictureBox1をはみ出さないようにピッタリ右下に移動することになる。

○PictureBoxの位置制御;Locationプロパティ
- PictureBoxコントロールの位置は、前のように、左側と上側の距離をLeft, Topプロパティの二つを別々に指定して別々に移動させていた。
が、Locationプロパティを利用すると、X,Y座標のペアを与えて、バラバラではなく、一気に移動することができる。
- PictureBoxコントロールの位置をX,Y座標共に指定して移動させる方法は次の通り。
PictureBox1.Location = New Point( x, y )
- これは、PictureBoxのLocationプロパティをプログラムで変更していることを意味する。
- 今までとなじみがないのが、右辺で、通常右側は一つの値を書き、左側の変数もしくはプロパティに代入していた。
が、X,Y座標は、ひとまとめにして、New Point( x, y )というように指示しなければいけない。
*困ったことに、PictureBox1.Location.X = 10 などと、X座標やY座標だけを代入することはできない。
教科書;
9.6 コントロールのサイズ調整 p.231
9.7 コントロールの移動 P.234
[「C班」プログラミング基礎のTopに戻る]