PEGANDO A TECLA PRESSIONADA

PLUGSOFTSM 15/02/2016 09:10:26
#457648
Pessoal... alguém sabe o modo de capturar a tecla pressionada dentro de um form sem ser nos eventos keypress, keydown ou keup do form

assim: Tenho uma rotina que lê dados de um pinpad e entra num loop infinito se não conseguir ler as informações. De modos que eu preciso usar uma delegate ou algo parecido dentro dessa função para interceptar o pressionamento da tecla esc no teclado, caso o usuário pressionar e, abortar a função...
Já aviso que não posso usar um timer ou um número x de tentativas... tem que ser pela tecla esc mesmo

Agradeço muito se alguém puder me ajudar
KURTGU 15/02/2016 11:45:29
#457656
Resposta escolhida
nÃO Sei se lhe serve..

<DllImport([Ô]user32.dll[Ô], SetLastError := True, CharSet := CharSet.Unicode)> _
Private Function GetKeyState (ByVal nVirtKey As KeyStates) As Short
End Function

Imports System.Windows.Forms
Public Class MinhaNovaTextbox
Inherits System.Windows.Forms.TextBox

Dim bInserting As Boolean = True

Private Declare Function GetKeyState _
Lib [Ô]user32[Ô] (ByVal nVirtKey As Short) As Integer

Public Sub New()
MyBase.New()
bInserting = GetKeyState(Keys.Insert)
End Sub

Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)
bInserting = GetKeyState(Keys.Insert)
If Not bInserting Then
Me.SelectionLength = 1
End If
MyBase.OnKeyPress(e)
End Sub
End Class
PLUGSOFTSM 15/02/2016 12:47:24
#457658
Amigo... Obrigado....
Consegui adaptar aqui teu código a meu sistema e funcionou direitinho

Obrigado
Tópico encerrado , respostas não são mais permitidas