HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


C# 2003の開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > C# 2003 Tips > コントロール Tips メニュー

01.動的にコントロールを配置する

UPDATE:2004/06/11 

<< 前のTips  次のTips >>

 


  動的にコントロールを配置する例として、ボタンコントロールを10個並べて配置し、それぞれのボタンがクリックされたときの処理を行うサンプルを紹介します。

手順
1)ボタンを10個管理するために、配列で宣言する
2)For ~ Nextで10個のボタンを作成する
2-1)インスタンスを作成
2-2)配置位置を設定
2-3)Nameプロパティを設定
2-4)サイズを設定
2-5)TabIndexを設定
2-6)ボタンテキストを設定
2-7)イベントハンドラの登録
  イベントハンドラはAddHandlerで登録します。
     AddressOfの右側に結びつけるメソッド名を記述します。
2-8)フォームに配置
3)クリックされたボタンを特定する
 引数「sender」には、呼び出しもとのコントロールの情報が入っています。
  CType(sender,Button)とすることで、呼び出しもとのボタンのプロパティをすべて取得することができます。
 ここでは、Textプロパティを取得して、MessageBox.Showで確認しています。

 サンプルはボタンコントロールを使用していますが、そのほかのコントロールでも同様の手順で動的に配置することが出来ます。
 動的にコントロールを配置するコツとしては、一度フォームに実際にコントロールを貼り付けてみて、プロパティウィンドウでデザイン時に設定できる項目を把握しておくことです。(最低Name, Location, Sizeプロパティは必要)こうすれば、コーディングでどのプロパティを設定すれば、自分が望むコントロールを動的に配置できるかがわかります。

 
サンプル
using System.Windows.Forms;
:
:省略
:
// 1)ボタン10個分の配列を準備
private Button[] btnArray = new Button[10];

private void Form1_Load(object sender, System.EventArgs e)
{

    for ( int i = 0; i < 10; i++ )
    {
        // 2-1)インスタンスを作成
        btnArray[i] = new Button();
        // 2-2)配置位置を設定
        btnArray[i].Location = new Point(10, 10 + 20 * i + 2);
        // 2-3)Nameプロパティを設定
        btnArray[i].Name = "Button" + i.ToString();
        // 2-4)サイズを設定
        btnArray[i].Size = new System.Drawing.Size(100, 20);
        // 2-5)TabIndexを設定
        btnArray[i].TabIndex = i + 1;
        // 2-6)ボタンテキストを設定
        btnArray[i].Text = "ボタン" + i.ToString();

        // 2-7)イベントハンドラの登録
        btnArray[i].Click += new System.EventHandler( ButtonClick );
        // 2-8)フォームに配置
        this.Controls.Add(btnArray[i]);
    }

}

private void ButtonClick(object sender, System.EventArgs e)
{
    // 3)クリックされたボタンを特定する
    MessageBox.Show(((Button)sender).Text);
}
 

<< 前のTips  次のTips >>