VB.Net程式設計:動態新增按鈕或者控制元件
阿新 • • 發佈:2019-01-03
由於程式需要,在一個窗體中,讀取資料庫的記錄內容,然後在介面中新增相應的按鈕,供使用者點選,響應對應的事件。
谷歌一下很多,看到:
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