Search code examples
vb.netkeypress

VB.NET - Check if the key pressed is the same as the text in label


I am wondering if anyone can help me to do the above question.

Basically what i have is a label which has had a randomly generated letter placed into it.

What I want to do is to show a msgbox (just to show that it works for now) when the same key in the label is pressed. I have tried two methods but none seem to work, could anyone point me in the right direction? It doesn't seem like it would be that hard, i am just new to coding.

Private Sub speedtyping_Keydown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress

    If (e.KeyChar = lblletter1.Text.ToString) Then
        MsgBox("WORKS")
    ElseIf (e.KeyChar = lblletter2.Text) Then
        MsgBox("words")
    End If

Many thanks!


Solution

  • In order to handle the form's KeyPress event, you need to set it's KeyPreview property. You can do that in the Form Designer or in the form's Load event handler as below.

    Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Me.KeyPreview = True
        End Sub
    
        Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress
            If e.KeyChar = lblletter1.Text(0) Then
                MessageBox.Show("WORKS")
            ElseIf e.KeyChar = lblletter2.Text(0) Then
                MessageBox.Show("words")
            End If
        End Sub
    End Class