布尔变量和三态CheckBoxes:如何最好地进行类型转换?

时间:2009-03-23 16:41:24

标签: vb.net vb6

这是在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

4 个答案:

答案 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个布尔值,在分离方面你的处理代码不需要知道任何复选框,因此不应该传递灰色或非灰色状态,但只有活动或非活动状态。