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 に答える