VB Check 控件数组问题
怎么做出来说溢出?DimnAsIntegerForn=0ToCheck1.Count-1Ifn<>IndexThenCheck1(n).Value=0ElseCheck1...
怎么做出来说溢出?
Dim n As Integer
For n = 0 To Check1.Count - 1
If n <> Index Then
Check1(n).Value = 0
Else
Check1(n).Value = 1
End If
Next n
在Check1_Click()里用的。 展开
Dim n As Integer
For n = 0 To Check1.Count - 1
If n <> Index Then
Check1(n).Value = 0
Else
Check1(n).Value = 1
End If
Next n
在Check1_Click()里用的。 展开
3个回答
展开全部
你在Check1_Click事件里用了个循环,但是循环里面用设置check(n)的值,这样又会出发Check1_Click事件,这就相当于一个递归调用而且没有结束条件,最终递归次数过多导致堆栈溢出。
追问
以三个控件数组。对“For n = 0 To Check1.Count - 1”的“ Check1.Count - 1”设为3可行不?用什么能实现哦?
追答
3个控件,index是0到2,所以改成3不行。checkbox的value只要发生变化就会触发Click事件,所以想在单击中实现不行。参考楼上的方法,mouseup事件比较好用。
展开全部
是不是你的Check控件的总数太多了?把变量n定义为Long试试?
更多追问追答
追问
就3个控件啊。一运行就说溢出
追答
因为CheckBox的Click事件是在CheckBox的对勾发生变化之后才产生的,所以你再定义该CheckBox的Value值,会使同一个语句执行无数遍直至溢出堆嵌空间。我在VB上试了,把你这部分代码改放在Check1_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)中,就能达到你的效果了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好!我看了你的代码,似乎是想达到单选的功能,那为什么不用单选按钮呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询