这是在VB6中(也可能适用于VB.net)
CheckBoxes可以有三种状态(Checked,Unchecked,Greyed)。
但我正在使用它们来设置布尔变量(MuteSound等)。这绝对是一个只有两个状态的值。不幸的是,Checked和Unchecked不对应True / False值。
所以,我不能:
bMuteSound = ChkMute.value .......... 如果bMuteSound然后等等等等
两种选择: 1.在设置/读取Checkbox.value时强制该值为布尔值:
bMuteSound = Checkbox.value =经过 .....
Checkbox.value = ConvertBooleanToCheckBox
答案 0 :(得分:4)
bMuteSound = abs(chkMute.Value)
chkMute.Value = abs(bMuteSound)
答案 1 :(得分:1)
对我来说看起来很简单:
Dim tsValue As VbTriState
'Conversions
tsValue = -Check1.Value
Check1.Value = -tsValue
答案 2 :(得分:0)
布尔变量是否具有默认值?如果是这样,那么如果该框是灰色的,则不要更改变量,如果它不是灰色的,则将其更改为正确的值。
答案 3 :(得分:0)
在一般意义上,复选框也可以变灰并检查,因此你有4个可能的情况只使用2个布尔值,在分离方面你的处理代码不需要知道任何复选框,因此不应该传递灰色或非灰色状态,但只有活动或非活动状态。