Visual Basic 2010:如何要求至少勾选一个复选框才可跳转至下一个窗体
问题解决:正确判断表单必填项并跳转
你的核心需求是:
- 列表框为空 或 未勾选任何复选框时,弹出提示
- 否则跳转至Form2(CONFIRMFORM)
原代码问题分析
- 原代码用
Or连接所有复选框的Checked=False,逻辑是只要有一个复选框没勾选就提示,相当于要求必须全选所有复选框,不符合你的需求 - 改成
And后,逻辑变成列表框为空且所有复选框都未勾选才提示,其他情况直接跳转,也不符合要求
正确代码实现
' 判断两个条件:列表框为空 或者 没有任何复选框被勾选 If firelevel.Text = String.Empty _ OrElse (station1btn.Checked = False AndAlso station2btn.Checked = False _ AndAlso station3btn.Checked = False AndAlso station4btn.Checked = False _ AndAlso station5btn.Checked = False) Then MsgBox("MISSING: Please fill all the field to complete your report", MsgBoxStyle.Exclamation, "REPORT UNSUCESSFUL") Else Me.Hide() CONFIRMFORM.Show() My.Settings.Save() End If
逻辑说明
- 列表框判断:保留你原有的
firelevel.Text = String.Empty,如果是需要判断列表框是否有选中项,可替换为firelevel.SelectedIndex = -1(更准确) - 复选框判断:用
AndAlso连接所有复选框的Checked=False,表示所有复选框都未被勾选时才满足该子条件 - 整体逻辑:用
OrElse连接两个条件,只要其中一个条件成立(列表框空 / 没勾任何复选框),就弹出提示;否则执行跳转
内容的提问来源于stack exchange,提问作者Yuta Ruitzu
相关产品推荐
相关产品推荐

