我想在按下 Enter 键的任何时候显示MessageBox
。我已经在vb.net
2013中完成了这项工作,但是在vb.net
2005年试图完成同等工作时,我没有取得成功。
下面,我将展示在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
,我都显示了错误。什么是正确的代码?
Sub QTY_Change(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs)
错误:' KeyValue'不是System.EventArgs'
的成员
$body = @"
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:nms:rtEvent">
<soapenv:Header/>
<soapenv:Body>
...rest of code here asd
</soapenv:Body>
</soapenv:Envelope>
"@
错误:方法&#39;公共子QTY_CHange&#39;没有与委托相同的签名&#39;委托子EventHandler(发件人作为对象,e作为system.eventargs)&#39;
答案 0 :(得分:6)
当然,您会在AddHandler
方法上遇到错误 - KeyPress EventArgs
需要执行您要执行的操作,而不是System EventArgs
。
在Form_Load
事件中,您需要一些与此相关的内容
Me.KeyPreview = True
AddHandler Me.KeyDown, AddressOf QTY_Change
然后,将您的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