我尝试了以下代码,将from中的MaskedTextBox
控件列表分配到列表msklist
。但是,即使执行了下面显示的代码,索引值仍为0。我的表单中有30个MaskedTextBox
控件。
Private msklist As New List(Of MaskedTextBox)
Private msk() As MaskedTextBox
For Each ctrl In Me.Controls
If TypeOf ctrl Is MaskedTextBox Then
msklist.Add(ctrl)
End If
Next
MsgBox(msklist.Count)
ReDim msk(msklist.Count - 1)
msk = msklist.ToArray
For i = 0 To 29 Step 1
query = "SELECT * FROM allotment_table WHERE seat=@seat"
cmd.Parameters.AddWithValue("@seat", seat1(i))
cmd = New SqlCommand(query, con)
con.Open()
re = cmd.ExecuteReader
re.Read()
msk(i).Text = re("regno")
con.Close()
Next
我希望使用数组Text
的for循环将文本分配给控件'msk
属性
我需要一些建议
答案 0 :(得分:1)
请改为尝试:
Private msklist As New List(Of MaskedTextBox)
' Loop through all controls in form
For Each ctrl As Control In Me.Controls
If TypeOf ctrl Is Panel Then
' Loop through each of the controls in the Panel
For Each panelCtrl As Control In ctrl.Controls
If TypeOf panelCtrl Is MaskedTextBox Then
msklist.Add(panelCtrl)
End If
Next
End If
Next
MsgBox(msklist.Count)
' Get the text value once and apply it to each text box
query = "SELECT * FROM allotment_table"
cmd = New SqlCommand(query, con)
con.Open()
re = cmd.ExecuteReader
re.Read()
Dim textValue As String = re("regno")
con.Close()
' Loop through the list of masked text boxes and apply the text value to each
For Each mskTextBox As MaskedTextBox In msklist
mskTextBox.Text = textValue
Next