所以我在visual studio 2008中有这个程序,让用户选择一个月和一年,然后动态更改所有前面颜色的复选框,文本对应于所选月份的星期六和星期日的日期。
让我们在第一次运行时说“让我= 1”,这是第一个星期日和2017年1月的第一天((UTC-08:00)太平洋时间(美国和加拿大))
我知道使用for each会让程序循环到Me.Controls中的每个控件,所以我认为它不会读取第一个IF语句
If cb.Text = i-1
并且只有ELIF会退出FOR LOOP。
但如果我将第一个语句改为
if cb.Text = i+1
它奏效了。有人请告诉我它有什么问题。我认为这只是错误或警告这个逻辑错误吗?
Dim cb
While i < 31
For Each cb In Me.Controls
If TypeOf cb Is CheckBox Then
If cb.Text = i - 1 Then
cb.ForeColor = Color.Blue
ElseIf cb.Text = i Then
cb.ForeColor = Color.Red
Exit For
End If
End If
Next
i += 7
End While
答案 0 :(得分:0)
所以这就是我解决自己问题的方法,让用户选择一个月和一年,计算天数和第一个星期天再继续....
这是因为FOR EACH LOOP以您在控件组或表单中添加的最后一个控件开始,因此我使用了正常的FOR LOOP并直接转换对象,因此它将查看控件的名称,名称必须以阵列的方式排列。像c1,c2,c3 ....
toDatePickerDialog.show()