1

我必须将我的一些旧代码从 VB6 重写为 VB.NET,这是一些我不知道该怎么做的事情。例如,我必须在文本框的 keyDown 事件处理程序下替换一些键码,没有帮助我无法做到这一点。

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

If KeyCode = vbKeyUp Then
   KeyCode = vbKeyEscape
End If

当我尝试从字面上重写时:

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

但这不会:

错误 2 属性“KeyCode”为“ReadOnly”。

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

4

2 回答 2

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
于 2012-10-20T17:58:22.063 回答
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
于 2017-04-28T04:32:30.310 回答