我有一些复选框,我想在我重新打开表单时保留所选的复选框。 这是我几乎所做的,但它只返回第一个选中的复选框..
For Each strItm As String In str
For Each ctl As Control In Me.Controls
If TypeOf ctl Is CheckBox Then
If ctl.Text = strItm Then
Dim cb As CheckBox = DirectCast(ctl, CheckBox)
cb.Checked = True
End If
End If
Next
Next
任何人帮助我。 tnx提前。更多力量。
答案 0 :(得分:0)
一种简单的方法是为每个复选框创建一个全局bool变量,该复选框在选中其复选框时为true,如果不是则为false。然后,当您关闭表单时,这些变量将保留其值。重新打开表单后,可以通过表单Load event
将checked属性设置为与这些变量匹配Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
checkbo1.checked = globalVar1
checkbo2.checked = globalVar2
checkbo3.checked = globalVar3
End Sub
答案 1 :(得分:0)
ParentForm
中的:
Dim frm As New ChildForm
frm.ShowDialog()
在ChildForm
Public Shared Chk1 As Boolean
Private Sub ChildForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
CheckBox1.Checked = Chk1
End Sub
此外,您需要在更改时更新此处的vaule:
If ctl.Text = strItm Then
Dim cb As CheckBox = DirectCast(ctl, CheckBox)
cb.Checked = True
Chk1 = True
End If