1

以下は、ProcessCmdKey の私のコードです。

Public Class EmployeeStatus

    Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
        Handl(msg, keyData, bNavi)
    End Function

    Public Function Handl(ByRef msg As Message, ByVal keyData As Keys, ByRef bNavi As BindingNavigator) As Boolean
        Try
            If keyData = (Keys.Control or Keys.S) Then
                TBSave
                Return True
            end if
        Catch ex As Exception
            Return False
        End Try
    End Function

    Public Function TBSave() as Boolean
        Try
            'Some code for saving to database
        Catch ex As Exception
            msgbox(ex.message)
        End Try
    End Function

End Class

テキストボックスに焦点を合わせている場合を除いて、すべて正常に機能します。オブジェクトに文字「S」を残します。この問題を解決するにはどうすればよいですか?

4

2 に答える 2

1

最初のコードブロックでは再現できませんでした。あなたが言うときit leaves character "S" in the object、それは S をテキストボックスのままにするということですか?

ProcessCmdKey メソッドが true を返した場合、コマンド キーは処理されています。Handlただし、呼び出しを編集して結果をtrue返さない場合は、Returns キーワードを追加して修正してください。

Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
    Return Handl(msg, keyData, bNavi)
End Function
于 2012-07-08T05:12:59.000 に答える
0

msg私はそれを理解しました...私は変数に空白の文字列を割り当てるだけで、それだけです。

于 2012-07-20T07:47:26.193 に答える