Option?Explicit
成都創(chuàng)新互聯(lián)是專業(yè)的蓬溪網(wǎng)站建設(shè)公司,蓬溪接單;提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行蓬溪網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
Private?WithEvents?NewTextBox?As?TextBox
'通過使用WithEvents關(guān)鍵字聲明一個對象變量為新的命令按鈕
Private?Sub?Command1_Click()
If?NewTextBox?Is?Nothing?Then
Set?NewTextBox?=?Controls.Add("VB.TextBox",?"cmdNew",?Form1)
NewTextBox.Move?200,?200
NewTextBox.Width?=?Form1.Width?-?450
NewTextBox.Height?=?Form1.Height?-?1400
NewTextBox.Visible?=?True
End?If
End?Sub
Private?Sub?Command2_Click()
If?NewTextBox?Is?Nothing?Then
Exit?Sub
Else
Controls.Remove?NewTextBox
Set?NewTextBox?=?Nothing
End?If
End?Sub
思路
兩種方式:
1、通過動態(tài)按鈕方式創(chuàng)建,
2:通過控件數(shù)組方式創(chuàng)建。
個人傾向于通過控件數(shù)組的方式。一般應(yīng)用都是有規(guī)律的創(chuàng)建的,所以用控件數(shù)組合適些。
舉例
'?先在窗體上添加一個標(biāo)準(zhǔn)按鈕
'?在屬性窗口中,把它的?Index屬性設(shè)置成?0
'????????名稱改為?cmdDynCmd?(其它的名稱也行,注意后面的說明)
'????????Visible?可以設(shè)置成?False
Option?Explicit
Private?lCmdIndex?As?Long
Private?Sub?LoadCmdButton()
'這兒就是加載動態(tài)按鈕的
Dim?i
For?i?=?0?To?NNN???'這兒NNN等于你需要的按鈕數(shù)減1,可以用變量的
'你應(yīng)該能通過你的“數(shù)據(jù)庫中"a"表中"名稱"字段”項目數(shù)?來確定值為多少
'?***?注意這兒的?cmdDynCmd?就是設(shè)計時確定的按鍵名稱?***
If?(lCmdIndex??0)?Then?Load?cmdDynCmd(i)
cmdDynCmd(i).Visible?=?True
'這兒的?Caption?屬性,你自己用代碼跟你的?數(shù)據(jù)庫中"a"表中"名稱"字段內(nèi)容關(guān)聯(lián)
cmdDynCmd(i).Caption?=?"動態(tài)按鈕"??i?+?1
'這兒的?x?、y?你可以根據(jù)?i?的值來進(jìn)行計算
cmdDynCmd(i).Top?=?X
cmdDynCmd(i).Left?=?Y
'直接?cmdDynCmd(i).move?x,?y也行
next
End?Sub
'?這兒就是動態(tài)按鈕的事件代碼
'?根據(jù)?Index?判斷是哪個按鈕觸發(fā)了事件
'?跟你事先設(shè)計好的控件數(shù)組完全是相同的用法
'?*****?注意!??!注意這兒的?cmdDynCmd?就是設(shè)計時確定的按鍵名稱
Private?Sub?cmdDynCmd_Click(Index?As?Integer)
MsgBox?"你點擊的是第?"??Index?+?1??"?個動態(tài)按鈕。",?64
'具體事件代碼只能你自己寫
End?Sub
'vb.net2008
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim j_MyButton As New ArrayList
For i = 0 To 5
Dim k1 As New Button
k1.SetBounds(20, 22 * i, 100, 20) '設(shè)置位置和大小(x y w h)
k1.Visible = True
AddHandler k1.Click, AddressOf my_button '委托點擊事件
Me.Controls.Add(k1) '在主窗口內(nèi)加入控件
j_MyButton.Add(k1)
j_MyButton(i).name = "發(fā)現(xiàn)" i "個MM"
j_MyButton(i).text = "My butten " i
Next
End Sub
Private Sub my_button(ByVal sender As System.Object, ByVal e As System.EventArgs)
TextBox1.AppendText(sender.name vbCrLf)
End Sub
End Class
Public Sub GenerateDynamiceButton()
'建立 坐標(biāo)位置的變數(shù), 方便一會兒安排 自動生產(chǎn)的button 的位置
Dim y As Integer = 15
Dim x As Integer = 0
' 用for loop 來建立 這些button 做 18只button
For ButtonIndex As Integer = 0 To 17
' 建造新的 button
Dim MyButton As New Button
'設(shè)定這新的button 的闊度
MyButton.Width = 80
'設(shè)定這新的button 的高度
MyButton.Height = 20
'我們暫定每行有4個BUTTON, 當(dāng)每行有多個4個BUTTON 時重設(shè)行距, 令到下一行的和這一行的距離有10 個PIXEL
' 和重設(shè)x 坐標(biāo)` = 0, 令到位置由頭開始
If ButtonIndex Mod 4 = 0 Then
'設(shè)定 TOP 的 坐標(biāo)位置令他可以和上一排的有10個PIXEL 的距離
y += MyButton.Height + 10
x = 0
End If
'設(shè)定文字 和 位置
' Set the text and set its top and left based on its dimensions and count
MyButton.Text = "My Button" ButtonIndex
'設(shè)定 TOP 的 坐標(biāo)位置
MyButton.Top = y
'下面的CODE 可以令到這個BUTTON 和另一個BUTTON 有5個PIXEL 的距離
MyButton.Left = 26 + (x * (MyButton.Width + 5))
x += 1
'設(shè)定 BUTTON CLICK EVENT
AddHandler MyButton.Click, AddressOf MyButton_Click
'把button 加到 form 中
Me.Controls.Add(MyButton)
Next
End Sub
'處理 button click event
Private Sub MyButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim btn As Button = sender
'pop up 一個自己button 的字的message
MsgBox(btn.Text)
wpf\winform\web?
wpf 和 winform 無非就是在事件里面修改button的屬性。
web 里面的話,前端還是使用javascript對dom元素進(jìn)行修改。