我的winForm上有一组7个复选框,允许用户选择要创建订单的一周中的哪一天。我正在尝试创建正确实现这些复选框决策的IF语句。我已尝试过If,IfElse和Select语句的多种组合,但都无济于事。
If cbMon.Checked = True Then
.WriteString("Monday")
If cbTues.Checked = True Then
.WriteString("Tuesday")
If cbWed.Checked = True Then
.WriteString("Wednesday")
If cbThur.Checked = True Then
.WriteString("Thursday")
If cbFri.Checked = True Then
.WriteString("Friday")
If cbSat.Checked = True Then
.WriteString("Saturday")
If cbSun.Checked = True Then
.WriteString("Sunday")
End If
End If
End If
End If
End If
End If
End If
到目前为止,我所拥有的是最好的。但问题是,如果我在winForm上检查“星期一,星期二和星期四”......星期一和星期二会出现,但周四会被跳过,因为它显然会突破if语句。有什么指导吗?
答案 0 :(得分:3)
问题是你不应该嵌套你的if语句。 在您的示例中,代码的任何部分仅在检查前一天(一直到星期一)时才会被检查。
简单地压扁if语句,不要嵌套它们,如下所示:
If cbMon.Checked = True Then
.WriteString("Monday")
End If
If cbTue.Checked = True Then
.WriteString("Tuesday")
End If
...等...
如果您希望用户只选择一个选项,则下拉列表或单选按钮列表可能更适合而不是复选框。
答案 1 :(得分:1)
不要使用嵌套
这里只需要简单的循环
Initialise an array
if monday
add monday to array
if tuesday checked
add tuesday to array
.
.
.
if sunday checked
add sunday to array
get the string by append all values in array with ','
答案 2 :(得分:0)
是的,你的问题是你正在嵌套if语句,这就是周四被跳过的原因,因为星期三被证明是错误的。
您需要做的是运行一个for循环,该循环将遍历每个复选框并检查其选中的值是否为真。