0
我是VB新手,遇到一些問題。VB.NET獲取動態控制值
我已經創建了子例程,每次點擊按鈕時都會自動將控件添加到面板控件,因此它可以創建儘可能多的我想要的。
這裏是子程序的代碼。
Private Sub CreateControl()
'CREATE TEXTBOX ITEMNO
Dim i_Itemno As Integer = TextEditItemno.Length
ReDim Preserve TextEditItemno(i_Itemno)
TextEditItemno(i_Itemno) = New TextEdit
With TextEditItemno(i_Itemno)
.Name = "Txtitemno" & i_Itemno.ToString()
If TextEditItemno.Length < 2 Then
.SetBounds(0, 0, 32, 20)
Else
.Left = TextEditItemno(i_Itemno - 1).Left
.Top = TextEditItemno(i_Itemno - 1).Top + TextEditItemno(i_Itemno - 1).Height + 4
.Size = TextEditItemno(i_Itemno - 1).Size
End If
.Tag = i_Itemno
End With
AddHandler TextEditItemno(i_Itemno).TextChanged, AddressOf TextEditItemno_TextChanged
PanelControl5.Controls.Add(TextEditItemno(i_Itemno))
'CREATE TEXTBOX PRICE
Dim i_Price As Integer = TextEditPrice.Length
ReDim Preserve TextEditPrice((i_Price))
Dim PriceX As Int16 = LblHarga.Location.X
TextEditPrice(i_Price) = New TextEdit
With TextEditPrice(i_Price)
.Name = "Txtprice" & i_Price.ToString()
If TextEditSatuan.Length < 2 Then
.SetBounds(PriceX, 0, 70, 20)
Else
.Left = TextEditPrice(i_Price - 1).Left
.Top = TextEditPrice(i_Price - 1).Top + TextEditPrice(i_Price - 1).Height + 4
.Size = TextEditPrice(i_Price - 1).Size
End If
.Tag = i_Price
End With
AddHandler TextEditPrice(i_Price).TextChanged, AddressOf TextEditPrice_TextChanged
PanelControl5.Controls.Add(TextEditPrice(i_Price))
End Sub
而我把它稱爲按鈕點擊。
Private Sub btnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.Click
CreateControl()
End Sub
現在我正在尋找的是如何循環和獲取這些文本框的價值,無論我創建了多少個文本框。
For i As Integer = 0 To TextEditItemno.Length - 1
' code to get the value of each textbox
Next
謝謝
不錯,非常感謝。如何獲得焦點文本框的索引還有一個問題?我的意思是我已經創建了可能讓我說10個文本框,我設置我的光標到文本框沒有#3,所以這可以做到這一點?因爲有時我需要更新vaalue並重新計算它。 – user3197450 2014-10-17 22:47:54
我會保留一個'CurrentTextbox'變量,並將其設置爲等於來自附加到文本框的'Focused'事件的'sender'變量。然後你可以做'TextEditItemno.IndexOf(CurrentTextbox)'。如果我的答案解決了您的原始問題,則應通過單擊旁邊的複選標記將其標記爲已接受的答案。 – 2014-10-18 01:50:59