・ちょっと難しいかも。でも応用範囲は大きく、プログラミングは簡単に!
コントロール配列が使えると結構便利。
同じ種類のいくつかのコントロールを番号で制御できるようになる。
PictureBoxを複数使う場合を想定する。例えばさいころの目の絵をPicture1〜6までに入れておくこと自体は特に問題ない。
しかし、別のPictureBoxにさいころの目によってPicture1〜6のどれかを表示させようとすると、If文がちょっと複雑になってしまう。またSelect文の方が分かりやすいが、それでもちょっと面倒。
そこでここではコントロール配列というものを勉強しよう。
上記のように今まではPicture1〜6というように別々のPictureBoxを準備しておいたが、
Picture1(1), Picture1(2), Picture1(3), Picture1(4), Picture1(5), Picture1(6) というように同じPicture1の分身のようなものを作ることができる。
これがコントロール配列というものである。
なお、d = 3 ; Picture1(d) というように変数を使って何番目かを指定することができる。つまり、さいころの目が変数dice1に代入されているとする。このとき、Picture2に出た目を表示するには、単純に
Picture2.Picture = Picture1( dice1 )
とすればよいだけである。If文も、Select文も全く必要なくなる。・コントロール配列の作り方
- コントロール配列にするには、基本的に同じオブジェクト名のものを作ると「コントロール配列にしますか」のように聞いてくれる。
- 具体的には、例えばまずピクチャーボックスを一つ貼り付けると、Picture1という名前が自動的に付けられる。
次に、このPicture1を選択(クリック)して「コピー」をし、更に「貼り付け」を行うと、上記のように「コントロール配列にするか」どうかをたずねてくる。
ここで「はい」を選択するとコントロール配列となる。- コントロール配列になったこれらピクチャーボックスは、実際には「Picture1(0)」と「Picuter1(1)」という名前になっていることを、プロパティウィンドウにて確認しよう。
- 同様にコピー&ペーストを繰り返すと、「Picture1(2)」などができる。
- なお、プロパティウィンドウの「(オブジェクト名)」にて既にあるオブジェクト名に変更しても同様にコントロール配列にすることができる。
上記の例では、当初の予定と違って、Picture1(0)からPicture1(5)などを作ることができる。
ではどうしたらよいだろうか?
Picture2.Picture = Picture1( dice1 - 1 ).Picture
というように、何番目かという指定を計算しなおしてあげればよい。もちろん、Picutre1(0).Picture = Picture1( dice1 ).Picture というように、Picture2ではなく、Picture1(0)に表示させるようにするのも手である。
*教科書;
「コントロール配列の利点」 p171