表单关闭时如何保持选中的复选框?

时间:2014-04-20 05:53:45

标签: vb.net checkbox

我有一些复选框,我想在我重新打开表单时保留所选的复选框。 这是我几乎所做的,但它只返回第一个选中的复选框..

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提前。更多力量。

2 个答案:

答案 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