| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 637 人关注过本帖
标题:check 勾选问题
只看楼主 加入收藏
wxflw
Rank: 6Rank: 6
等 级:侠之大者
帖 子:325
专家分:435
注 册:2012-1-29
结帖率:87.21%
收藏
已结贴  问题点数:20 回复次数:6 
check 勾选问题
窗体添加两个chck
勾选check1后check2打钩的话把钩去掉
反过来勾选check2那么check1前东德勾要去掉

if check2.vlue=1 then check2.vlue=0

反之

if check1.vlue=1 then check1.vlue=0


可是check的反应时,如果check2已经打钩了,点check1的 时候,点一下check2的钩子去掉了,可是check1钩子却没有打上,状态变成两个都没有勾上,
必须要再次点check1才能在check1上打上钩子。

这是什么问题?
该怎么写?
2014-10-02 05:23
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
收藏
得分:0 
if check2.vlue=1 then check2.vlue=0这句
改为:if check2.vlue=1 then
check2.vlue=0
check1.vlue=1

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2014-10-02 15:35
wxflw
Rank: 6Rank: 6
等 级:侠之大者
帖 子:325
专家分:435
注 册:2012-1-29
收藏
得分:0 
Private Sub Check1_Click()
 If Check2.Value = 1 Then
    Check2.Value = 0
    Check1.Value = 1
 End If
End Sub

Private Sub Check2_Click()
   If Check1.Value = 1 Then
     Check1.Value = 0
     Check2.Value = 1
   End If
End Sub

不行啊

学习--------------学习-------------------学习--------------------!!
2014-10-02 17:12
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:20 
改变check值会产生click事件,这样会导致嵌套调用(check1_click事件里改变check2的值,产生check2_click事件,check2_click事件里又改变了check1的值,产生check1_click事件,最后循环调用,死循环,溢出),代码修改如下即可获得所需结果。

Private Sub Check1_Click()
  If Not Check1.Enabled Then Exit Sub
  Check2.Enabled = False
  Check2.Value = Check1.Value Xor 1
  Check2.Enabled = True
End Sub

Private Sub Check2_Click()
  If Not Check2.Enabled Then Exit Sub
  Check1.Enabled = False
  Check1.Value = Check2.Value Xor 1
  Check1.Enabled = True
End Sub
2014-10-02 20:47
wxflw
Rank: 6Rank: 6
等 级:侠之大者
帖 子:325
专家分:435
注 册:2012-1-29
收藏
得分:0 
回复 4 楼 xzlxzlxzl
前两天用手机上不方便,谢谢您的指点,不过有有点缺陷我稍做修改,请指点下,也供大家借鉴探讨!
Private Sub Check1_Click()
  If Not Check1.Enabled Then Exit Sub
  Check2.Enabled = False
  Check2.Value = Check1.Value Xor 1
  Check2.Value = False’没有这句会出现控件值为true,enabled属性为False状态
  Check2.Enabled = True
  If Check1.Value = False Then Check1.Value = True’加这句是因为如果打钩状态下再点会出现两个check都为Flase状态。有这句后点多少次都是true状态
End Sub

Private Sub Check2_Click()
  If Not Check2.Enabled Then Exit Sub
  Check1.Enabled = False
  Check1.Value = Check2.Value Xor 1
  Check1.Value = False’没有这句会出现控件值为true,enabled属性为False状态
  Check1.Enabled = True
  If Check2.Value = False Then Check2.Value = True’加这句是因为如果打钩状态下再点会出现两个check都为Flase状态。有这句后点多少次都是true状态
End Sub

学习--------------学习-------------------学习--------------------!!
2014-10-09 08:31
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
要达到单选效果用OptionButton控件更方便,无需代码,在任何可放控件的容器里(form、frame、picture)不管放几个,均能实现单选,用check控件代码简化如下亦可。
Private Sub Check1_Click()
  If Not Check1.Enabled Then Exit Sub
  If Check1 = 0 Then Check1 = 1: Exit Sub
  Check2.Enabled = False
  Check2.Value = Check1.Value Xor 1
  Check2.Enabled = True
End Sub

Private Sub Check2_Click()
  If Not Check2.Enabled Then Exit Sub
  If Check2 = 0 Then Check2 = 1: Exit Sub
  Check1.Enabled = False
  Check1.Value = Check2.Value Xor 1
  Check1.Enabled = True
End Sub
2014-10-09 09:23
wxflw
Rank: 6Rank: 6
等 级:侠之大者
帖 子:325
专家分:435
注 册:2012-1-29
收藏
得分:0 
回复 6 楼 xzlxzlxzl
嗯,谢谢!我是在学习中,想要尝试控件的使用方法,所以在做做实验!谢谢您的帮助!


不过不加这句
Check1.Enabled = True
还是会出现灰色打钩现象的。
If Check1 = 0 Then Check1 = 1: Exit Sub 这句只能加在sub前面,要不然灰色钩子去不掉的。

[ 本帖最后由 wxflw 于 2014-10-9 11:09 编辑 ]

学习--------------学习-------------------学习--------------------!!
2014-10-09 11:02
快速回复:check 勾选问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029830 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved