Dim Text() As Object
創(chuàng)新互聯(lián)建站服務項目包括寬城網站建設、寬城網站制作、寬城網頁制作以及寬城網絡營銷策劃等。多年來,我們專注于互聯(lián)網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網行業(yè)的解決方案,寬城網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到寬城省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
Private Sub Form_Load()
Dim i As Integer
Dim nTop As Long
ReDim Text(1 To 10)
For i = 1 To 10
Set Text(i) = Controls.Add("VB.TextBox", "Text1" CStr(i))
Text(i).Height = 300
Text(i).Top = nTop
Text(i).Visible = True
nTop = nTop + 30 * 15
Next i
End Sub
添加動態(tài)控件。你可以自己試試看。 form1上什么都不加運行這個程序后會發(fā)現(xiàn)自動生成了10個text控件
Private WithEvents NewTextBox As TextBox
'通過使用WithEvents關鍵字聲明一個對象變量為新的命令按鈕
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
你需要的應該是反射,類似如下,我測試通過的:
Imports?System.Reflection
Public?Class?Form1
Public?Sub?MMMToolStripMenuItem_Click(sender?As?Object,?e?As?EventArgs)?Handles?MMMToolStripMenuItem.Click
MsgBox("menu?click")
End?Sub
'在按鈕事件處理里面通過反射名稱調用相應菜單事件
Public?Sub?CallEventMethod(sender?As?Object,?e?As?EventArgs)
Dim?b?As?Button?=?sender?'獲取點擊的按鈕
'拼接菜單事件名稱
Dim?MethodName?As?String?=?b.Name??"ToolStripMenuItem_Click"
Dim?t?As?Type?=?Me.GetType
Dim?m?As?MethodInfo?=?t.GetMethod(MethodName)
'反射方法
m.Invoke(Me,?New?Object()?{Nothing,?Nothing})
End?Sub
'動態(tài)生成了按鈕
Private?Sub?Form1_Load(sender?As?Object,?e?As?EventArgs)?Handles?MyBase.Load
Dim?btn?As?New?Button
btn.Location?=?New?Point(100,?100)
btn.Name?=?"MMM"?'關鍵
btn.Text?=?"MMM"
'注冊事件
AddHandler?btn.Click,?AddressOf?Me.CallEventMethod
Me.Controls.Add(btn)?
End?Sub
End?Class
布局方面,建議你用FlowLayoutPanel,不用手工控制控件位置了。假設有一個FlowLayoutPanel1。
先在窗體類中建一個控件的集合:
Dim
TextBoxes
As
New
List(Of
TextBox)
在button1的
Click事件
中寫:
For
i
=
1
To
5
'5是每次加入的數(shù)量
Dim
newTextBox
As
New
TextBox()
'newTextBox.Size
=
New
Size(100,20)
'
TextBoxes.Add(newTextBox)
'加入我們的集合中
FlowLayoutPanel1.Controls.Add(newTextBox)
'加到窗體的FlowLayoutPanel中去
Next
i
然后button2的Click事件中:
For
Each
itemTextBox
As
TextBox
In
TextBoxes
'這里的itemTextBox.Text就代表每個TextBox里的文本
'如果你需要清空,調用TextBoxes.Clear()和FlowLayoutPanel.Controls.Clear()即可
Next
比如說這樣添加的計時器:
Dim Timer1 As New Timer
你要在合適的地方開始,比如窗體Load事件中,這樣:
Timer1.Interval = 1000 '單位毫秒,1000毫秒=1秒
Timer1.Enabled = True '啟用計時器
然后在代碼窗口上方下拉列表里選擇Timer1的Tick事件,自動添加代碼:
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
End Sub
這是計時器觸發(fā)的事件,每秒觸發(fā)一次,在這里面輸入循環(huán)判斷是否有日程即可。提示:你可以用Now對象獲取當前的日期和時間。