我想在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)的签名不同
当然,你会在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)
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |