あまねこ TOP  >  スポンサー広告 >  c# >  C#でボタンを動的に複数配置させる

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --年--月--日 --:-- ] カテゴリ:スポンサー広告 | TB(-) | CM(-)

C#でボタンを動的に複数配置させる

ボタンに限らず、C#では複数のコントロールを一括して配置することができる

まずはコントロールを配列として宣言

private Button[] buttons;

フォームをロードしたら以下を実行するようにする

private void Form1_Load(object sender, EventArgs e){
//ボタンコントロール配列の作成
this.buttons = new Button[10];
for (int i = 0; i < buttons.Length; i++){
//ボタンコントロールのインスタンス作成
this.buttons[i] = new Button();

//プロパティ設定
this.buttons[i].Name = "btn" + i.ToString();
this.buttons[i].Text = "ボタン" + i.ToString();
this.buttons[i].Top = i * 30;

//コントロールをフォームに追加
this.Controls.Add(this.buttons[i]);
}

これでボタンが10個作成されて表示される。しかしこのままでは当然ながらボタンをクリックしても何も起きない。そこで生成した各ボタンとイベントを関連付ける必要がある。
先ほどのコントロールをフォームに追加したあとに

this.buttons[i].Click += new System.EventHandler(btnclick);
を追加し、btnclickを定義しておく。以下は例である。

private void btnclick(object sender, System.EventArgs e){
Button btn = (Button)sender;
MessageBox.Show(btn.Name);
}
するとボタンをクリックすると「btn0」のようにボタン名が表示される。btnclick内ではイベント(btnclick)を呼び出したコントロールの名前を取得している。今回は変数btnに格納してから表示しているが以下でもおk。

MessageBox.Show((((Button)sender).Name));


参考リンク:
C# - コントロールの配列を作成する
コントロールの配列を作成する: .NET Tips: C#, VB.NET
イベントを呼び出したコントロールの名前を取得する | ITLAB51.COM
関連記事
[ 2013年06月30日 12:15 ] カテゴリ:c# | TB(0) | CM(0)
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。