Labelも配列にしたい。ここではLabelのようなコントロールをプログラムで生成する方法を紹介して、演習のLabelを配列に書き換えることを目指す。
ここで目指すこと
- コントロールをプログラムで作成する方法を知ること
- プログラムでLabelを作成すること
- Labelを配列で制御すること
コントロールの作成手順
- 作成したいコントロールのクラス変数を定義する
- コントロールのインスタンスをnewキーワードで生成して、変数に代入する
- コントロールのプロパティを設定する
- フォームに追加する
ラベルをプログラムで作成する
作成手順
- 新しいプロジェクトを作成する(projCreateLabelなどのプロジェクト名)
- フォームをダブルクリックする
- 以下のプログラムを入力する
Label lbl = new Label(); lbl.AutoSize = true; lbl.Text = "ラベルを作成"; Controls.Add(lbl);
プログラムの意味
- 変数lblを定義して、Labelのインスタンス(実体)をnewで生成して代入
Label lbl = new Label();
- ラベルの幅が、テキストに応じて自動的に大きくなるようにAutoSizeプロパティをtrueにする
lbl.AutoSize = true;
- ラベルに表示させる文字列を代入
lbl.Text = "ラベルを作成";
- ラベルをフォームに貼る
Controls.Add(lbl);
まとめ
- コントロールはプログラムで作成することができる
- newでコントロールのインスタンス(実体)を生成
- Controls.Add()で追加する
演習
前の項の演習で作成したプログラムのlabel2,label3、label4を、配列に書き換えたい。以下の手順に従ってプログラムを書き換えよう。
手順
- 前の項で作成したプロジェクトを開く。
- フォームから、label2、label3、label4を削除する。
- コードを開く。
- vxやvyの配列を定義している下の行に(⑤の場所)、以下を追加して、3つ分のLabelの配列を定義する。
private Label [] label = new Label[3];
- コンストラクタ(vxやvyに乱数を求めている場所)の下に、このページで解説しているLabelの追加方法を参考にして、label[0]、label[1]、label[2]にLabelを生成して、プロパティを設定して、フォームに追加する。
- Label lblの部分を、label[0]やlabel[1]、label[2]に変更する。
- 3つ作るので、Labelを作成するプログラムもコピー&ペーストなどで3つ分にする。
- プログラム内のlabel2をlabel[0]に、label3をlabel[1]に、label4をlabel[2]に書き換える。
以上で書き換え完了。