更新布尔值。 VB.NET
updating a boolean value. VB.NET
我正在开发一个应用程序,用户可以在其中填写几个文本框,其他按钮会根据他们填写的内容改变颜色。到目前为止它工作得很好,但我现在 运行问题。
有10个按钮,当用户填写了正确的值后,按下的按钮变为红色或绿色。例如,当我按下按钮 6 并填写所有内容时,它会变成绿色。然后,当我转到下一个按钮(按钮 8)时,我填写了所有内容,这样按钮应该变成红色,但它变成了绿色。这是因为我在按钮 6 处为 3 个布尔变量赋予了 true 值,这使其变为绿色。然后当我想为其他按钮更改那些布尔值时,它们会保留第一次给它们的值。
这是我的代码的一部分,只是相同的代码,但用于不同的按钮。
If Integer.TryParse(tbAantalIslands.Text, iAantalIslands) AndAlso
iBtnClickCheck = 6 Then
If iAantalIslands <= 2 Then
bQuantityCheck = True
End If
End If
If Integer.TryParse(tbAantalIslands.Text, iAantalIslands) AndAlso
iBtnClickCheck = 8 Then
If iAantalIslands <= 2 Then
bQuantityCheck = True
End If
End If
这是按钮 6 和 8 的代码。当 iAantalIslands 小于或等于 2 时,它将布尔 bQuantityCheck 更改为 true。
这是我用那个布尔值来改变按下的按钮的颜色。
If bQuantityCheck = True AndAlso bMassCheck = True AndAlso bWeightAllParticles = True AndAlso iBtnClickCheck = 6 Then
btn6.BackColor = Color.Green
Exit Function
ElseIf bQuantityCheck = False AndAlso bMassCheck = False AndAlso bWeightAllParticles = False AndAlso iBtnClickCheck = 6 Then
btn6.BackColor = Color.Red
Exit Function
ElseIf iBtnClickCheck = 6 Then
btn3.BackColor = Color.Red
Exit Function
End If
If bQuantityCheck = True AndAlso bMassCheck = True AndAlso bWeightAllParticles = True AndAlso iBtnClickCheck = 8 Then
btn8.BackColor = Color.Green
Exit Function
ElseIf bQuantityCheck = False AndAlso bMassCheck = False AndAlso bWeightAllParticles = False AndAlso iBtnClickCheck = 8 Then
btn8.BackColor = Color.Red
Exit Function
ElseIf iBtnClickCheck = 8 Then
btn3.BackColor = Color.Red
Exit Function
End If
这里显示的是,如果满足设置的参数,它会改变按钮的颜色。
我有 10 个按钮,这些按钮代表玻璃的厚度,例如 6 毫米、8 毫米、10 毫米等。该应用程序是一个测试器,用于查看玻璃是否以正确的方式破碎。用户必须填写 3 个字段,岛屿的数量(一定大小的松散玻璃碎片)、最大的岛屿和所有岛屿的总和。这些字段有一个他们应该在的范围,例如不能超过2个岛或玻璃不正确,最大的岛不能有大于1000mm2的质量。
如果用户给出的值在正确的范围内,用户按下的用于说明玻璃厚度的按钮将变为绿色。如果它超出了这些设定的边界,它将变成红色。
现在如果用户测试了6mm厚的玻璃,一切正常,那么按钮是绿色的,然后用户继续测试8mm厚的玻璃。例如,8mm 玻璃有 5 个岛,因此按钮应变为红色。相反发生的是 6mm 按钮处给出的值没有改变,因此您在我的代码中看到的布尔值不会更新以适应按钮 8。按钮 8 然后在它应该是红色的时候变成绿色。
不太确定您要在这里做什么。
您要么需要在检查按钮 8 之前将布尔值重置为 false,要么完全使用一组不同的布尔值。
另外请记住 AndAlso 是 short-circuiting,因此如果 bQuantityCheck 为真或假,您的代码将不会评估其他布尔值(bMassCheck 和 bWeightAllParticles)。
我正在开发一个应用程序,用户可以在其中填写几个文本框,其他按钮会根据他们填写的内容改变颜色。到目前为止它工作得很好,但我现在 运行问题。
有10个按钮,当用户填写了正确的值后,按下的按钮变为红色或绿色。例如,当我按下按钮 6 并填写所有内容时,它会变成绿色。然后,当我转到下一个按钮(按钮 8)时,我填写了所有内容,这样按钮应该变成红色,但它变成了绿色。这是因为我在按钮 6 处为 3 个布尔变量赋予了 true 值,这使其变为绿色。然后当我想为其他按钮更改那些布尔值时,它们会保留第一次给它们的值。
这是我的代码的一部分,只是相同的代码,但用于不同的按钮。
If Integer.TryParse(tbAantalIslands.Text, iAantalIslands) AndAlso
iBtnClickCheck = 6 Then
If iAantalIslands <= 2 Then
bQuantityCheck = True
End If
End If
If Integer.TryParse(tbAantalIslands.Text, iAantalIslands) AndAlso
iBtnClickCheck = 8 Then
If iAantalIslands <= 2 Then
bQuantityCheck = True
End If
End If
这是按钮 6 和 8 的代码。当 iAantalIslands 小于或等于 2 时,它将布尔 bQuantityCheck 更改为 true。
这是我用那个布尔值来改变按下的按钮的颜色。
If bQuantityCheck = True AndAlso bMassCheck = True AndAlso bWeightAllParticles = True AndAlso iBtnClickCheck = 6 Then
btn6.BackColor = Color.Green
Exit Function
ElseIf bQuantityCheck = False AndAlso bMassCheck = False AndAlso bWeightAllParticles = False AndAlso iBtnClickCheck = 6 Then
btn6.BackColor = Color.Red
Exit Function
ElseIf iBtnClickCheck = 6 Then
btn3.BackColor = Color.Red
Exit Function
End If
If bQuantityCheck = True AndAlso bMassCheck = True AndAlso bWeightAllParticles = True AndAlso iBtnClickCheck = 8 Then
btn8.BackColor = Color.Green
Exit Function
ElseIf bQuantityCheck = False AndAlso bMassCheck = False AndAlso bWeightAllParticles = False AndAlso iBtnClickCheck = 8 Then
btn8.BackColor = Color.Red
Exit Function
ElseIf iBtnClickCheck = 8 Then
btn3.BackColor = Color.Red
Exit Function
End If
这里显示的是,如果满足设置的参数,它会改变按钮的颜色。
我有 10 个按钮,这些按钮代表玻璃的厚度,例如 6 毫米、8 毫米、10 毫米等。该应用程序是一个测试器,用于查看玻璃是否以正确的方式破碎。用户必须填写 3 个字段,岛屿的数量(一定大小的松散玻璃碎片)、最大的岛屿和所有岛屿的总和。这些字段有一个他们应该在的范围,例如不能超过2个岛或玻璃不正确,最大的岛不能有大于1000mm2的质量。
如果用户给出的值在正确的范围内,用户按下的用于说明玻璃厚度的按钮将变为绿色。如果它超出了这些设定的边界,它将变成红色。
现在如果用户测试了6mm厚的玻璃,一切正常,那么按钮是绿色的,然后用户继续测试8mm厚的玻璃。例如,8mm 玻璃有 5 个岛,因此按钮应变为红色。相反发生的是 6mm 按钮处给出的值没有改变,因此您在我的代码中看到的布尔值不会更新以适应按钮 8。按钮 8 然后在它应该是红色的时候变成绿色。
不太确定您要在这里做什么。
您要么需要在检查按钮 8 之前将布尔值重置为 false,要么完全使用一组不同的布尔值。
另外请记住 AndAlso 是 short-circuiting,因此如果 bQuantityCheck 为真或假,您的代码将不会评估其他布尔值(bMassCheck 和 bWeightAllParticles)。