有一个真正困扰我的问题。我在面板控件中有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事件调用的。
答案 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中,复选框的值是在设计时分配的值。你是如何实例化,加载,显示第二种形式的?