VB界面中有9个Text1(o),Text1(1)....Text(9),九宫排列。用键盘上下左右
VB界面中有9个Text1(o),Text1(1)....Text(9),九宫排列。用键盘上下左右键控制光标移动各个Text文本框,,求完整源码?谢谢...
VB界面中有9个Text1(o),Text1(1)....Text(9),九宫排列。用键盘上下左右键控制光标移动各个Text文本框,,求完整源码?谢谢
展开
3个回答
展开全部
Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
Dim i As Integer
Select Case KeyCode
Case 37
i = Index - 1
If i \ 3 <> Index \ 3 Then i = i + 3
Text1(i).SetFocus
Case 38
i = Index - 3
If i < 0 Then i = i + 9
Text1(i).SetFocus
Case 39
i = Index + 1
If i \ 3 <> Index \ 3 Then i = i - 3
Text1(i).SetFocus
Case 40
i = Index + 3
If i > 8 Then i = i - 9
Text1(i).SetFocus
End Select
End Sub
补充:你题目中说的最后一个应该是Text1(8)吧?否则的话10个文本框怎么组成九宫格?
展开全部
9宫格0到8 添加以下代码 测试可用
Private Sub Text1_KeyUp(Index As Integer, KeyCode As Integer, Shift As Integer)
'键盘方向键的KeyCode ↑38 ↓40 ←37 →39
Select Case KeyCode
Case 38
If Index >= 3 Then Text1(Index - 3).SetFocus
Case 40
If Index <= 5 Then Text1(Index + 3).SetFocus
Case 37
If Index Mod 3 <> 0 Then Text1(Index - 1).SetFocus
Case 39
If Index <> 2 And Index <> 5 And Index <> 8 Then Text1(Index + 1).SetFocus
End Select
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,0~9是10个数字。。所以我按0~8来做了。
(首先自己画9个文本框,9宫格排列,Index依次为1,2,3...8)
(你的问题表述不是很清楚,我按“按键盘上下左右实现各个文本框焦点的转换”来制作了)
Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
Select Case KeyCode '对按下的键筛选
Case vbKeyUp '如果按下键盘“↑”键时,处于焦点的文本框不在最上面一行
If Index > 2 Then Text1(Index - 3).SetFocus '就改变焦点
Case vbKeyDown '如果按下键盘“↓”键,处于焦点的文本框不在最下面一行
If Index < 6 Then Text1(Index + 3).SetFocus '就改变焦点
Case vbKeyLeft '如果按下键盘“←”键,处于焦点的文本框不在最左面第一行
If Index <> 0 Then Text1(Index - 1).SetFocus '就改变焦点
Case vbKeyRight '如果按下键盘“→”键,处于焦点的文本框不在最右面最后一行
If Index <> 8 Then Text1(Index + 1).SetFocus '就改变焦点
End Select
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询