HIRO's.NET

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

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

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

HIRO's.NET RSSHIRO's.NET RSS


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

HOME > VB.NET 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プロパティは必要)こうすれば、コーディングでどのプロパティを設定すれば、自分が望むコントロールを動的に配置できるかがわかります。

 
サンプル
'1)ボタン10個分の配列を準備
Private btnArray(9) As Windows.Forms.Button

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim I As Integer

    For I = 0 To 9

        '2-1)インスタンスを作成
        btnArray(I) = New Windows.Forms.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)イベントハンドラの登録
        AddHandler btnArray(I).Click, AddressOf ButtonClick
        '2-8)フォームに配置
        Me.Controls.Add(btnArray(I))

    Next

End Sub

Private Sub ButtonClick(ByVal sender As Object, ByVal e As System.EventArgs)
    '3)クリックされたボタンを特定する
    MessageBox.Show(CType(sender, Button).Text)
End Sub
 

<< 前のTips  次のTips >>