1. 程式人生 > >VB.Net程式設計:動態新增按鈕或者控制元件

VB.Net程式設計:動態新增按鈕或者控制元件

由於程式需要,在一個窗體中,讀取資料庫的記錄內容,然後在介面中新增相應的按鈕,供使用者點選,響應對應的事件。

谷歌一下很多,看到:

http://developer.51cto.com/art/200910/155672.htm

http://www.dotblogs.com.tw/yc421206/archive/2009/06/01/8636.aspx

http://wenku.baidu.com/view/3f9d4ac39ec3d5bbfd0a749b.html

參考第一篇文章,已經夠我用的了。

測試專案:vs2008 用到的主要控制元件:FlowLayoutPanel 作為按鈕的容器(有將容器裡面的控制元件自動擺放排列的功能)。

IDE設計介面:


執行結果介面:


擴大視窗寬度:部門8和部門9的兩個按鈕自動排列到部門7後面。


點選某個按鈕:響應的事件。


已經夠用了。

原始碼:

Public Class FrmAddBtns

    Dim index As Integer = 1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        '建立一個按鈕  
        Dim btn As New Button
        '修改按鈕屬性
        btn.Text = "部門" & index
        btn.Height = 30
        btn.Tag = index
        index += 1
        '繫結點選按鈕事件  
        AddHandler btn.Click, AddressOf Btns_Click
        '把控制元件新增到容器中 FlowLayoutPanel1 (有將容器裡面的控制元件自動擺放排列的功能)
        '聽說windows 8 的初始介面也是用這個控制元件的。
        FlowLayoutPanel1.Controls.Add(btn)
    End Sub

    Private Sub Btns_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        '判斷滑鼠點選的是否是按鈕控制元件
        If Not sender.GetType() Is GetType(Button) Then
            MessageBox.Show("觸發的不是按鈕控制元件")
            Return
        End If
        '設定觸發物物件給臨時變數 btn
        Dim btn As Button = sender
        '顯示你點選的物件的相關屬性,或者處理其他相關按鈕對應的事件。如某個部門的所有員工。
        MessageBox.Show("你點選的按鈕: " + btn.Text & " tag值: " & btn.Tag.ToString, "觸發事件:")
    End Sub

End Class