我是visual basic的初学者,我正在开发一个计算器,其中我有以下代码。
labeltotal.text = (radiobutton1.Checked) * 1000
我对上述代码的期望是,如果选中radiobutton1,则总数的值应为1000,否则应为0.
但我得到的是,如果选中radiobutton1,总值会变为-1000,否则会变为0.
但如果我使用复选框,我会得到正确的值。例如,
labeltotal.text = (checkbox1.Checkstate) * 1000
根据检查状态,它会按预期提供正确的值。
如何使单选按钮的行为与上面代码中的复选框相同?
答案 0 :(得分:2)
首先,您应该将Option Strict
切换为On
。
如果Boolean
转换为Integer
,-1
True
和0
False
将获得labeltotal.Text = (CInt(radiobutton1.Checked) * 1000 * -1).ToString
labeltotal.Text = (CInt(radioButton1.Checked) ^ 2 * 1000).ToString
。
有关详细信息,请参阅:Convert Boolean to Integer in VB.NET
因此,下列其中一项应返回您想要的结果:
Convert.ToInt32
还有1
函数会为True
返回labeltotal.Text = (Convert.ToInt32(radioButton1.Checked) * 1000).ToString
:
labeltotal.Text = If(radioButton1.Checked, "1000", "0")
但在这种特殊情况下,计算并没有多大意义。
以下内容更清楚,更适合这种情况:
jquery-turbolinks