請問如果要 dynamically 在 run-time 加一個 TextBox 到現有的
TextBox 控制項陣列, 在 redim 過後, 要怎麼給定新 textbox 的 name ??
(特別是在 Name 裡牽涉到 Index 的部份, 該放 string 還是 value ??)
比如說....
Dim WithEvents addedIVRaange As VB.TextBox
-------------------------------------------
Private Sub add_Click()
RangeNo% = RangeNo% + 1
ReDim RangeMax(IVRangeNo%)
Set addedIVRaange = Controls.Add("VB.TextBox", "NAME" , form_RangeConfig)
^^^^^^^
??????
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: spin.phys.ntu.edu.tw
我大致上了解你的做法, 但我不懂為何要用到陣列呢?
在執行階段,可用 Load 和 Unload 陳述式新增和移除控制項陣列中的控制項,
然而,新增的控制項必須是現有控制項陣列的元素。在大多數情況下,您必須先
在設計階段建立一個 Index 屬性為 0 的控制項,然後在執行階段使用如下語法:
Load object(index%) '新增
Unload object(index%) '釋放
上述的用法是指, 你必須在設計階段時, 先建立一個控制項陣列, 其陣列元素為 0
即 index 為 0
例如 :
先放一個textbox 在 form上, 再複製它則會建立兩個 textbox, 則分別為
textbox(0), textbox(1), 再刪掉 textbox(1), 如此便建立好一個 index
屬性為 0 的控制項陣列了, 再將其屬性 visible 設為 false , 再放上兩個
button, 一個為 command1 (用來新增控制項), 另一個為 command2 (用來刪除控制項)
接著用如下的寫法在執行階段建立, 希望我的範列對你有幫助囉~~~
Dim RangeNo As Integer
Private Sub Command1_Click()
If RangeNo% = 0 Then
Text1(0).Visible = True
Text1(0).Text = "Text(0)"
Else
Load Text1(RangeNo%)
With Text1(RangeNo%)
.Visible = True
.Top = Text1(RangeNo% - 1).Top + 400
.Text = "Text(" & RangeNo% & ")"
End With
End If
RangeNo% = RangeNo% + 1
End Sub
Private Sub Command2_Click()
RangeNo% = RangeNo% - 1
If RangeNo% <= 0 Then
Text1(0).Visible = False
RangeNo% = 0
Else
Unload Text1(RangeNo%)
End If
End Sub
--
[1;32m※ Origin: [33m電腦家庭 [37m<bbs.pchome.com.tw> [m
[1;31m◆ From: [36mpc075.pchome.com.tw [m