vb.net一个关于模块级变量的问题

PrivateSubCheckBox1_CheckedChanged(...)HandlesCheckBox1.CheckedChanged,CheckBox2.Chec... Private Sub CheckBox1_CheckedChanged(...) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, CheckBox3.CheckedChanged, CheckBox4.CheckedChanged

If CheckBox1.Checked Then b = b & CheckBox1.Text
If CheckBox2.Checked Then b = b & CheckBox2.Text
If CheckBox3.Checked Then b = b & CheckBox3.Text
If CheckBox4.Checked Then b = b & CheckBox4.Text

End Sub
然后我输出b。 但是选了1和2的CheckBox后 需要输出的b= CheckBox1.Text 和 CheckBox2.Text
但是实际输出的为b= CheckBox1.Text & CheckBox1.Text & CheckBox2.Text
已找到了正确的解决方法是在if上方的那行空格里加 b= “ ”
但是不知道为什么会这样
展开
 我来答
adai_008
推荐于2016-08-03 · TA获得超过1385个赞
知道大有可为答主
回答量:1152
采纳率:83%
帮助的人:796万
展开全部
b看起来是个模块级变量。
第一次选了CheckBox1,
b=b & CheckBox1.Text
第二次选了CheckBox2的时候,代码还要依次检查每个CheckBox的选定状态,检查到CheckBox1时又要执行:
b=b & CheckBox1.Text
到CheckBox2时又要执行:
b = b & CheckBox2.Text
上面三次连接字符串的动作,就造成了最后你说的结果。
追问
CHECKBOX.CHECK是勾选了就算了吗 我理解成单击了
追答
CheckedChanged过程是每当复选框的选中或未选中状态发生变化就会被触发。鼠标点击或按键盘空格键都触发。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chinaboyzyq
2015-01-30 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:3271万
展开全部
因为b为全局变量,会保持上一次的结果,你的写法会给b连续赋值并保留。
加b=""是清空串。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式