5

Keydown イベントで TAB キー押下をキャプチャしようとしています。テキストボックスでタブキーが押されたときにイベントを発生させる方法に関する別の投稿を見ることができますか?

ただし、上記のリンクでは、投稿されたソリューションが機能していません。これについては、以下で説明します。

Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) _
                         Handles TextBox1.KeyDown
    If e.KeyCode = Keys.Tab Then
       e.SuppressKeyPress = True
       'do something
    End If
End Sub

テスト目的で、FORM1 に 2 つの単純なテキスト ボックスを追加し、以下のコードを記述して、KeyDown イベントで TAB をキャプチャします。

Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
    If e.KeyCode = Keys.Tab Then
        e.SuppressKeyPress = True
        MsgBox("TAB DOWN")
    End If
End Sub

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    Me.Text = e.KeyChar
End Sub

Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
    If e.KeyCode = Keys.Tab Then
        MsgBox("TAB UP")
    End If
End Sub

Private Sub TextBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Leave
    Me.Text = "LEAVE"
End Sub

上記のコードは、TAB が押されたときに KeyDown にメッセージ ボックスを表示することを前提としています。動いていない。

私が間違っていることを教えてください。前もって感謝します!!!

4

2 に答える 2

-2

MsgBox()は VB6 からの継承であり、次のようにメッセージ ボックスの .NET 実装を使用する必要があります。

MessageBox.Show("TAB UP")

また、Textフォーム クラス ( ) のインスタンスに対してプロパティを設定していますが、テキスト ボックスMeのプロパティを次のように設定するつもりだと思います。Text

Me.TextBox1.Text = e.KeyChar
于 2013-08-06T18:30:01.110 に答える