在按下Enter键时,需要VB.net 2005中的帮助来执行逻辑

use*_*652 -8 vb.net

我想在MessageBox任何时候Enter按下键显示.我在vb.net2013年做到了这一点,但是在vb.net2005年试图做同样的事情时,我没有成功.

下面,我将展示在Form_Load子例程中创建列的代码.然后,我给出了Qty_change子程序的代码.

然后,我有一个替代版本的Qty_change标题.对于两者QTY_CHANGE,我已经显示了我得到的错误.什么是正确的代码?

SUB LOAD

...ETC ETC...

quantityItem = New ScrollableListItem((My.Resources.Resource.StrQuantity & ":" & vbTab) + quantityText, Nothing, Nothing, "quantity")
quantityItem.EditControl = textBox
quantityItem.Validator = quantityValidator
AddHandler quantityItem.ItemChanged, AddressOf QTY_Change
END SUB

Sub QTY_Change(ByVal sender As System.Object, ByVal e As System.EventArgs)
If e.KeyValue = 13 Then
  MessageBox.Show("Response")
End If
End Sub
Run Code Online (Sandbox Code Playgroud)

错误:'KeyValue'不是'System.EventArgs'的成员

Sub QTY_Change(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs)   
Run Code Online (Sandbox Code Playgroud)

错误:方法'Public sub QTY_CHange'与委托'Delegate Sub EventHandler(发件人为对象,e为system.eventargs)的签名不同

Dav*_*vid 6

当然,你会在AddHandler方法上遇到错误- KeyPress EventArgs需要做你想要做的事情,而不是System EventArgs.

在您的Form_Load活动中,您需要一些类似的东西

Me.KeyPreview = True
AddHandler Me.KeyDown, AddressOf QTY_Change
Run Code Online (Sandbox Code Playgroud)

然后,将QTY_Change代码更改为以下内容:

Private Sub QTY_Change(ByVal o As Object, ByVal e As KeyEventArgs)

    If e.KeyCode = Keys.Enter Then
        e.SuppressKeyPress = True
        MessageBox.Show("Response!", "", MessageBoxStyle.OK)
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)