我有这个vb.net代码,我使用foreach循环复选框
但问题是它从Checkbox 19开始到1但我想从Checkbox1开始直到19
Dim i = 0
For Each myControl As CheckBox In Me.Controls
myControl.Text = Form1.DataGridView1.Columns(i).HeaderText
myControl.Checked = My.Settings("HC" & i)
i+=1
Next
Run Code Online (Sandbox Code Playgroud)
那么如何使用普通的for循环执行上面的代码,我不知道如何使用普通的for循环遍历contols
所以这是新的工作代码
Option Strict On
Option Infer On
For i= 1 To 19
Dim myControl = DirectCast(Me.Controls("CheckBox" + i.ToString()), CheckBox)
myControl.Text = Form1.DataGridView1.Columns(i).HeaderText
MsgBox(i)
myControl.Checked = CBool(My.Settings("HC" & i))
Next
Run Code Online (Sandbox Code Playgroud)
使用普通For循环,您需要手动构造复选框名称:
For i = 1 To 19
Dim myControl = DirectCast(Me.Controls("checkbox" + i.ToString()), CheckBox)
... ' do something with myControl
Next
Run Code Online (Sandbox Code Playgroud)
这使用ControlCollection索引器按名称访问控件,然后将控件强制转换为CheckBox,以便可以为myControl变量推断出正确的类型.
(显然,代码示例假设Option Strict On和Option Infer On.)
| 归档时间: |
|
| 查看次数: |
1450 次 |
| 最近记录: |