无法更改面板控件中的复选框的检查状态

时间:2013-01-09 15:47:26

标签: vb.net winforms visual-studio-2010

有一个真正困扰我的问题。我在面板控件中有8个复选框。该面板位于automation.vb [design]文件中。在Automation.vb中,我做一个简单的循环来完成控件并检查选中哪个框,并且它应该正常工作:

            For Each chk As CheckBox In pnlSelectedDays.Controls
                If chk.Checked Then
                   'do things
                End If
            Next

但是,当我需要检入另一个文件时,我有相同的构造,但控件从来没有一个checkstate,即使它们被检查。它会在第一个文件中正常,但在第二个文件中错误:

    For Each day As CheckBox In Automation.pnlSelectedDays.Controls
        If day.Checked Then
            'do some more things
        End If
    Next

是因为我是从另一个档案打来的吗?我对winforms有点新,通常做c ++,所以不确定结构是否正常。如果没有,我是否只在automation.vb文件中创建一个共享公共函数,以便其他文件可以调用它?

编辑:在自动化表单上点击保存按钮时调用第一个示例 第二个示例是从自动化表单的OnClose事件调用的。

2 个答案:

答案 0 :(得分:1)

这是我为你做的一些代码,试一试......

Public Sub ClearFields()

    For Each ctrl As Control In Animation.GroupBox1.Controls
        If TypeOf ctrl Is Checkbox Then
          CType(ctrl, Checkbox).Checked = False
        End If
    Next ctrl

End Sub

这会让你有所帮助,这是一个你可以在你需要的地方打电话的子...

谢谢!

答案 1 :(得分:0)

如果我正确地听到你的声音(我也正在接听电话)那么这听起来像是一个时间问题。在form_load中,复选框的值是在设计时分配的值。你是如何实例化,加载,显示第二种形式的?