在TextBox的KeyDown处理程序下更改KeyCode

时间:2012-10-20 17:32:42

标签: vb.net

我必须将我的旧代码从VB6重写为VB.NET,这里有一些我不知道该怎么做的事情。 例如,我必须在textbox的keyDown事件处理程序下替换一些键码,我无法在没有帮助的情况下执行此操作。

最简单的说,我有可行的VB6代码:

If KeyCode = vbKeyUp Then
   KeyCode = vbKeyEscape
End If

当我尝试按字面意思重写时:

If e.KeyCode = Keys.Up Then
   e.KeyCode = Keys.Escape
End if

但这不会发生:

  

错误2属性' KeyCode'是“只读”#39;

由于我有很多这样的转换要做,这有什么办法可以实现这么简单吗?

2 个答案:

答案 0 :(得分:2)

在VB.Net中模拟此操作的最佳方法是执行以下操作。当您看到按下Up键时取消该事件。然后发送Escape密钥的人工密钥事件。

Protected Overrides Sub OnKeyDown(ByVal e As KeyEventArgs)
    If e.KeyCode = Keys.Up Then
        e.Handled = True
        SendKeys.Send("ESC")
    Else
        MyBase.OnKeyDown(e)
    End If
End Sub

答案 1 :(得分:0)

Private Sub txtDUnidades_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtDUnidades.KeyPress
    If e.KeyChar = "." Then

        e.KeyChar = "," 
        e.Handled = False
    End If
    End Sub