| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1088 人关注过本帖
标题:[求助]关于键盘事件中的一个循环的问题
取消只看楼主 加入收藏
lhf391855540
Rank: 1
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-10-14
结帖率:0
收藏
 问题点数:0 回复次数:6 
[求助]关于键盘事件中的一个循环的问题

下面是程序原代码,在按向上或向左的方向键时,当Index=0的时候,程序运行会出错,应当如何解决这个问题,请各位高手指教。谢谢!

Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then '按回车键
Index = (Index + 1) Mod 41
Text1(Index).SetFocus
End If

If KeyCode = vbKeyDown Then '按向下方向键
Index = (Index + 1) Mod 41
Text1(Index).SetFocus
End If

If KeyCode = vbKeyUp Then '按向上方向键
Index = (Index - 1)
Text1(Index).SetFocus
End If

If KeyCode = vbKeyLeft Then '按向左方向键
Index = (Index - 1)
Text1(Index).SetFocus
End If

If KeyCode = vbKeyRight Then '按向右方向键
Index = (Index + 1) Mod 41
Text1(Index).SetFocus
End If

End Sub

搜索更多相关主题的帖子: 键盘 
2006-12-27 22:34
lhf391855540
Rank: 1
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-10-14
收藏
得分:0 

因为mod 41后才能产生循环。比如41个Text控件,编号从0--40,当Index=40时,40+1=41,而实际Index最大只有40而没有41,那么 mod 41后,其余数=0,那么,Index会重新从0开始,不会产生错误。否则就会有错误的提示。

2006-12-28 13:20
lhf391855540
Rank: 1
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-10-14
收藏
得分:0 

因为mod 41后才能产生循环。比如41个Text控件,编号从0--40,当Index=40时,40+1=41,而实际Index最大只有40而没有41,那么 mod 41后,其余数=0,那么,Index会重新从0开始,不会产生错误。否则就会有错误的提示。

2006-12-28 13:20
lhf391855540
Rank: 1
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-10-14
收藏
得分:0 
但当Index递减的时候,不知道如何解决这个问题。求高手指点。
2006-12-28 13:23
lhf391855540
Rank: 1
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-10-14
收藏
得分:0 
谢谢指教!我试试看
2006-12-28 13:41
lhf391855540
Rank: 1
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-10-14
收藏
得分:0 


Right和Down不是一样么?..
Up和Left不是一样么?...那还要写两个代码?...
此代码测试过....没问题的..

是一样的,但多几行代码在应用过程中可以多一种选择,其实也还是不错的哦!

2006-12-28 13:56
lhf391855540
Rank: 1
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-10-14
收藏
得分:0 
谢谢上面两位高手的帮助。两位的方法都不错。感谢dragonfly“要学会节省代码”的提醒!
purana同志的方法很好,可以作为放之四海而皆准的定律,连控件数组的个数都不用考虑了。我只在If KeyCode = vbKeyRight Or KeyCode = vbKeyDown 的后面加了or KeyCode = vbKeyReturn ,运行的效果很满意,获益良多,再次对二位表示感谢!
2006-12-28 14:20
快速回复:[求助]关于键盘事件中的一个循环的问题
数据加载中...
 
   



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

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