2017-04-03 113 views
-8

我想隨時顯示MessageBox輸入鍵被按下。我已經在2013年的vb.net中完成了這項工作,但是在嘗試執行2005年的vb.net等效項時,我沒有成功。當按下Enter鍵時,需要VB.net 2005幫助執行邏輯

下面,我將顯示在子例程中創建列的代碼。然後,我給出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 

Error: 'KeyValue' is not a member of 'System.EventArgs'

Sub QTY_Change(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) 

Error: Method 'Public sub QTY_CHange' does not have the same signature as delegate 'Delegate Sub EventHandler(sender as object,e as system.eventargs)'

+6

你已經提出了11個問題,從未接受過任何答案。這並不真正鼓勵任何人幫助你。 – MrZander

+1

MrZander先生,如果你給出了一個能夠真正解決我的問題的答案,那麼我會接受你的答案。 – user3637652

+3

這不是一個粗魯的地方。你現在進一步勸阻任何人回答和幫助你 - _很好!_ – David

回答

6

當然,那麼你會得到關於AddHandler方法錯誤 - KeyPress EventArgs必須做你想做,沒有什麼System EventArgs

在你情況下,你需要沿着這個

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