这个不难。
我有点不理解的是,楼主怎么要用“radio button”,而不用 CheckBox ?代码写好了,界面设计不好用语言来表达,我把工程打包上传到资源。

解决方案 »

  1.   

    楼主的图片,无法访问。
    因此不知道你的“界面”是什么样的。楼主怎么把这个贴子放在“非技术类”了?
    代码下载:
    http://download.csdn.net/detail/chen8013/6564773
      

  2.   


    图片是这样,radio button是公司规定,虽然以CheckBox也可以做到,这个贴子当时点错地方
      

  3.   

    如果多一个OFF开关,OPTION数组是否只要改表达式,顺便问一下
    If (mlOpeFlag) Then Exit Sub
       mlOpeFlag = -1
    其功用为何?
    还有2的次方数是以何处的代码计算之?
      

  4.   

    修改好了,谢谢高手,不过还是希望能解释一下
    If (mlOpeFlag) Then Exit Sub
       mlOpeFlag = -1
    其功用为何?
    还有2的次方数是以何处的代码计算之?
      

  5.   

    mlOpeFlag 的作用就是“逻辑锁”,防止事件消息产生“连锁反应”。t=t+t 就是完成了 2的n次方 运算。
      

  6.   

    我知道t=t+t 就是完成了 2的n次方 运算
    不太懂1、2、4、8、16、32、64、128从何而来,因为没看到2^i
      

  7.   

    t = t + t应该是把Frame1(i).Caption = t
    Frame1(0)~Frame1(7)加起来之总和
      

  8.   

    喔喔  了解了  thanks
      

  9.   

    V = V Or t And (Option1(i).Value = True)
    这行是什么原理、功用,因为text1显示的数值好像是靠这行计算出来的
      

  10.   

    这句是用 位运算 ,来避免执行流程产生分支,提高运行效率。V = V Or t And (Option1(i).Value = True)
    改成这样,结果相同:
    If (Option1(i).Value) Then V = V + t
    在这儿的特定环境下, V or t 跟 V + t ,结果是一样的。对于 V = V Or t And (Option1(i).Value = True) ,你只要弄清楚它的运算流程及“效果”,就能理解了:
    首先,执行 Option1(i).Value = True 的运算,结果为逻辑值(这儿不用括号,也先运算它。用括号可强调、清晰流程)
    然后,执行 And 运算(优先级比Or高)。它左边是 Long类型,因此前面的逻辑值进行类型转换,转成Long。
      Option1(i).Value 为 True 时,逻辑值是 True,转成 Long就是 -1&, t And -1& 结果为 t;
      Option1(i).Value 为 False时,逻辑值是 False,转成 Long就是 0&, t And -1& 结果为 0;
    最后是 V 与 上一步的结果进行 Or 运算。 
    由于V的值 与i对应的位(二进制位)肯定是0,t 的值又对应 2^i,这儿用 Or 跟用 + 等效。
    由于t的值要先进行And运算,当 Option1(i).Value = True 时,等效于执行了 V = V + t ;
         当 Option1(i).Value = False 时,等效于执行了 V = V + 0。