PEGANDO A TECLA PRESSIONADA
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
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
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
<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
Amigo... Obrigado....
Consegui adaptar aqui teu código a meu sistema e funcionou direitinho
Obrigado
Consegui adaptar aqui teu código a meu sistema e funcionou direitinho
Obrigado
Tópico encerrado , respostas não são mais permitidas