当command1得到焦点时,这时按Enter键而不让他执行button1_click事件,而是使焦点移到另一个控件上(button2或text1);只有当按的是F8键

itme99 2003-06-24 07:02:48
我是在form的属性中用form.keypress=true.
在form_keypress中,实现每按一下Enter键,使得它在form中的一个控件被选中。可是当button控件上得到焦点是,再按Enter键,就不往下走了,而是执行button1_click事件。有什么办法让在按Enter键时不让它去执行Click事件?
我在button 的keypress事件中把keypress=0了,还是不行!
...全文
37 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
matchchen 2003-07-05
  • 打赏
  • 举报
回复
mark
itme99 2003-07-05
  • 打赏
  • 举报
回复
谢谢你:VertyNew(华)
-------------------
Private Sub Command1_Click()
If CancelClick Then
Command2.SetFocus
Exit Sub
End If
MsgBox "Command1_Click"
End Sub
这样ok.
谢谢大家。
zxlkxy 2003-07-04
  • 打赏
  • 举报
回复
你把Button1_Click里的东西放到Button1_MouseUp就可以了。
FlySnow2002 2003-07-04
  • 打赏
  • 举报
回复
我通常的解决方法是:
用一个变量,把当前获得焦点的控件名称放到里面去.
可用在鼠标的onmove事件里给变量赋值.当然假如用键盘改变焦点的话,代码是你自己写的当然好控制.
然后再用变量判断.
lxcc 2003-07-04
  • 打赏
  • 举报
回复
Button1_Click里面用Sendkeys输入一个Tab键转换焦点
itme99 2003-07-04
  • 打赏
  • 举报
回复
在commandbutton 中,如果按的是回车键,就不会执行Button1_KeyDown事件,只是执行Button1_Click事件,所以按 VertyNew(华) 所说的,根本不能解决问题。
help!
还想懒够 2003-07-04
  • 打赏
  • 举报
回复
我的想法和 zxlkxy(神经鬼) 一样,就是别在command1_click事件中写代码,而在commadn1_keypress事件中写入代码或者是command1_keydown事件中写入也行啊。
bao3 2003-07-04
  • 打赏
  • 举报
回复
唉,都让他们说光了,我也没什么好说的了,
VertyNew 2003-07-04
  • 打赏
  • 举报
回复
Dim CancelClick As Boolean

Private Sub Form_Load()
CancelClick = True
End Sub

Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 119 Then
CancelClick = False
Command1_Click
CancelClick = True
End If
End Sub

Private Sub Command1_Click()
If CancelClick Then Exit Sub
MsgBox "Command1_Click"
End Sub

这样做不知能不能满足你的要求
itme99 2003-07-04
  • 打赏
  • 举报
回复
在Button1_Click事件中判断CancelClick,为True时退出过程
如果你真的试过通过的话,能不能把代码帖出来!谢谢。
itme99 2003-07-04
  • 打赏
  • 举报
回复
keypreview已经为true了!
而且在form的keypress,keydown都试过了,是不行的。
lxcc 2003-07-04
  • 打赏
  • 举报
回复
form1.keypreview=true
lxcc 2003-07-04
  • 打赏
  • 举报
回复
keypreview=true
itme99 2003-07-04
  • 打赏
  • 举报
回复
lxcc(虫莲) ( )
说的 “在Button1_Click里面用Sendkeys输入一个Tab键转换焦点。”是可以把焦点转到下一个控件上,但是,我要的是有条件的转换,既:只有按“回车”才转换到下一控件,按别的按钮不转换,而执行click事件。
现在问题的关键是:当前控件如果是commandbutton,按回车时,在keypress事件中,keydown中,是检查不到keyAscii和keyCode的值的!如果能把这个问题解决了,一切都解决了!
VertyNew 2003-06-24
  • 打赏
  • 举报
回复
用一个标志变量CancelClick,在Form_Load时赋给它True值

在Button1_MouseDown事件中将它赋False
在Button1_MouseUp事件中将它赋为False
在Button1_KeyDown事件中作如下判断
If KeyCode = 13 Then
Button2_Click
ElseIf KeyCode = 119 Then 'F8键
CancelClick = False
Button1_Click
CancelClick = True
EndiF
在Button1_Click事件中判断CancelClick,为True时退出过程

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧