Private Sub Command1_Click()
    MsgBox "OK"
    Unload Me
End SubPrivate Sub Form_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyEscape Then
        Unload Me
    End If
End SubPrivate Sub Form_Load()
    Form1.KeyPreview = True
    Command1.Default = True
End Sub

解决方案 »

  1.   

    Private Sub Command1_Click()
        MsgBox "OK"
        Unload Me
    End SubPrivate Sub Command2_Click()
        MsgBox "Cancel"
        Unload Me
    End SubPrivate Sub Form_Load()
        Command1.Default = True
        Command2.Cancel = True
    End Sub
      

  2.   

    在属性框里设置一下Default=True(按回车就响应)或设置一下Cancel=True(按ESC就响应)
      

  3.   

    多谢 junwhj(junwhj.myrice.com) 兄给分结贴!
      

  4.   

    你的问题不尽详尽,我有些搞不明白,但如果要窗体执行你要的功能,可以在窗体里处理Form_keydown()事件和Form_keypress()事件然后判断KeyCode代码是否是ESC键的代码,若是,则处理,若不是就不处理就行了。当然了,这样做了以后焦点要在窗体上才能被执行,如果窗体有上有控件的话且拥有焦点,则不会执行你要的操作,需要控件的KeyDown和keypress事件中增加处理的代码。
      

  5.   

    同意 junwhj(junwhj.myrice.com) 
    写的真够详细!
      

  6.   

    command按钮有两个属性一个default和cancel(好像是),一个是回车默认,一个是esc默认。试试!
      

  7.   

    同意 junwhj(junwhj.myrice.com)。
    设置按钮的 default 和 Cancel 属性。
      

  8.   

    我看你的意思是不是就是窗体上有两个按钮,一个确定一个取消,然后你想按回车就等于单击确定按钮,按ESC就等于单击取消按钮
    如果这样的话,很简单,你把确定按钮的Default属性设为True,把取消按钮的Cancel属性设为True
      

  9.   

    keydownselect case keycode
     case =13:command1_click(0)'回车
     case =27:command1_click(1)'ESC
    end select不过写的地方可能要多一点。