为什么,
我在使用check控件时,
 我用循环来清空为什么会调用
for i=0 to 2
 check1(i).value=0 
next
check1_click(index as in integer)事件..
难道check1_click事件.可以直接用
check1(i)来调用?....
如何,解决?...

解决方案 »

  1.   

    再补充一点~。
      我就是想我在使用
    当然前提是check是控件数组!。。
    for i=0 to 2 
     check1(i).value=0 
    next
    的时候不会调用 check1_click(index as integer)事件?
    如何解决
    谢谢答复满意给满50分~
    谢谢~。。
      

  2.   

    check1(i).value改变时,肯定会调用check1_click事件,最简单的解决办法:
    声明个模块级量: mbCodeChange as Boolen
    在check1_click事件最前面加上一句:
    if mbCodeChange then exit sub当你用代码改变check1(i).value时,也就是for i=0 to 2前先加一句mbCodeChange=True
    改变代码结束,也就是Next后,再加一句:mbCodeChange=False
      

  3.   

    Option Explicit
    Dim j As Integer    '定义一个全局变量,用于表明是清空还是单独触发
    Private Sub Check1_Click(Index As Integer)
    If j = 1 Then
       Select Case Index
       Case 0
         MsgBox 0
       Case 1
         MsgBox 1
       End Select
    End IfEnd SubPrivate Sub Command1_Click()
       Dim Ctrltxt As Control
        j=0   '不触发
        For Each Ctrltxt In Me
             If TypeName(Ctrltxt) = "CheckBox" Then
                Ctrltxt.Value = 0
             End If
        Next
        j = 1    
    End Sub
      

  4.   

    Private Sub Check1_Click(Index As Integer)
    If Check1(0).Tag <> "1" Then
        '这里处理你的单击事件
    End If
    End SubPrivate Sub Command1_Click()
    Dim i As Integer
    Check1(0).Tag = "1" '开始清空的时候就将Check1(0).Tag 写成"1"
    For i = 0 To 2
     Check1(i).Value = 1
    Next
    Check1(0).Tag = "" '完成清空后再将Check1(0).Tag 写为空
    End Sub
      

  5.   

    是不是这样做了之后。
     check1(i).value=1 或0 
    这样的操作就不会,
     触发check1_click这个事件呢?
      

  6.   

    将我上面发的代码拷去试试,我觉得可以满足你的要求了,而且不需要判断CheckBox到底有几个,直接可以清空所有的CheckBox
      

  7.   

    homezj(小吉) 
     aohan(景升)
     tztz520(午夜逛街
    谢谢你们三位呀~。
    嗯~。。
      homezj(小吉) 你的方法我看了一下`。
       但是我没有试不过看上去还行~。
    景升你的方法我也没试看上去应该也可以~。
     午夜逛街 你的方法我采用了~。嗯我的给分理由~。homezj(小吉) 10分aohan(景升) 10分tztz520(午夜逛街) 30分因为我采用了午夜逛街的方法所以多20分~
    本来是说满意者给,满50的~
    可是前面两位也都对嗯~
    特别是景升已经帮了我好几回了~。。
    午夜逛街这样给分没意见吧~。如果没意见回复 11111 
     
      

  8.   

    不过,我忍不住还是要说点:1、请一定不要给我加分,我有些讨厌论坛中设立的分数,常让人有话不敢说,以为是在争分数。2、关于使用Tag做为标志的方法不可取!多数控件都有Tag属性,且也仅有一个,它是一个非常宝贵的资源,好钢要用在刀刃上,它一般用于存放每个控件具有个性化的数据,象这种仅是一个简单的全局性标志就使用Tag,它会影响整个控件数组以后Tag的有效使用,而且访问对象属性远慢于强类型变量,在以后的实践中你就会发现这种差别。所以从资源的合理分配与代码的执行效率上,使用Tag干这事,都不是个好选择!我只是就事论事,因为我只在意技术问题,请tztz520(午夜逛街) 原谅!