Try this :

VB Code:
  1. Private Sub btnKey2to9Handler(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnKey2.Click, btnKey3.Click
  2. [b]    MsgBox(sender Is Nothing)[/b]
  3.  
  4.        If armed = True Or expectingInput = True Then
  5.            Static KeyValue As String
  6.            If Not lastKeyPressed Is sender Then
  7.                AlphaNumericButton.keyPadTimer.Enabled = False
  8.            End If
  9.            lastKeyPressed = sender
  10.  
  11.            If AlphaNumericButton.IsAlphabetic = False Then
  12.                KeyValue = sender.Getchr
  13.            Else
  14.  
  15.               'Working with this part
  16.                If Not AlphaNumericButton.keyPadTimer.Enabled Then
  17.                    KeyValue = sender.Getchr
  18.                    AlphaNumericButton.keyPadTimer.Enabled = True
  19.                Else
  20.                    'Delete the last alpha character.
  21.                    If inputBuffer.Length > 0 Then
  22.                        inputBuffer = inputBuffer.Substring(0, inputBuffer.Length - 1)
  23.                    End If
  24.                    'Determine the next alpha character.
  25.  
  26.                    'Errors here if I click within one second
  27. [b]    MsgBox(sender Is Nothing)[/b]
  28.                    MsgBox(sender.Getchr)
  29.                End If
  30.            End If
  31.  
  32.        End If
  33.    End Sub

If it says false, then the problem might lie in an unhandled exception in the Getchr() method.
I have never used UserControls, but there is the possibility that unhandled exceptions in UserControls are passed up through the call stack - instead of VB catching and showing you the error there.

Try using MsgBox() statements in the Getchr() method to track its progress...