我是在form的属性中用form.keypress=true.
在form_keypress中,实现每按一下Enter键,使得它在form中的一个控件被选中。可是当button控件上得到焦点是,再按Enter键,就不往下走了,而是执行button1_click事件。有什么办法让在按Enter键时不让它去执行Click事件?
我在button 的keypress事件中把keypress=0了,还是不行!

解决方案 »

  1.   

    用一个标志变量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时退出过程
      

  2.   

    在commandbutton 中,如果按的是回车键,就不会执行Button1_KeyDown事件,只是执行Button1_Click事件,所以按 VertyNew(华) 所说的,根本不能解决问题。
    help!
      

  3.   

    Button1_Click里面用Sendkeys输入一个Tab键转换焦点
      

  4.   

    我通常的解决方法是:
    用一个变量,把当前获得焦点的控件名称放到里面去.
    可用在鼠标的onmove事件里给变量赋值.当然假如用键盘改变焦点的话,代码是你自己写的当然好控制.
    然后再用变量判断.
      

  5.   

    你把Button1_Click里的东西放到Button1_MouseUp就可以了。
      

  6.   

    lxcc(虫莲) ( ) 
    说的 “在Button1_Click里面用Sendkeys输入一个Tab键转换焦点。”是可以把焦点转到下一个控件上,但是,我要的是有条件的转换,既:只有按“回车”才转换到下一控件,按别的按钮不转换,而执行click事件。
    现在问题的关键是:当前控件如果是commandbutton,按回车时,在keypress事件中,keydown中,是检查不到keyAscii和keyCode的值的!如果能把这个问题解决了,一切都解决了!
      

  7.   

    keypreview已经为true了!
    而且在form的keypress,keydown都试过了,是不行的。
      

  8.   

    在Button1_Click事件中判断CancelClick,为True时退出过程
    如果你真的试过通过的话,能不能把代码帖出来!谢谢。
      

  9.   

    Dim CancelClick As BooleanPrivate Sub Form_Load()
        CancelClick = True
    End SubPrivate Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)
        If KeyCode = 119 Then
            CancelClick = False
            Command1_Click
            CancelClick = True
        End If
    End SubPrivate Sub Command1_Click()
        If CancelClick Then Exit Sub
        MsgBox "Command1_Click"
    End Sub这样做不知能不能满足你的要求
      

  10.   

    我的想法和 zxlkxy(神经鬼) 一样,就是别在command1_click事件中写代码,而在commadn1_keypress事件中写入代码或者是command1_keydown事件中写入也行啊。
      

  11.   

    谢谢你:VertyNew(华) 
    -------------------
    Private Sub Command1_Click()
        If CancelClick Then
            Command2.SetFocus
            Exit Sub
        End If
        MsgBox "Command1_Click"
    End Sub
    这样ok.
    谢谢大家。