(VB 2008) Como posso usar o keypress

Algo do género:

Código:
[SIZE=2][/SIZE]Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
  If e.KeyCode = Keys.F2 Then
    Dim frm As New Form1
    frm.Show()
  End If
End Sub
 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Me.KeyPreview = True
End Sub
 
Última edição pelo moderador:
Código:
 Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = Keys.Insert Then
            Dim frm As New Form1
            Me.Show()
        End If
        If e.KeyCode = Keys.Delete Then
            Dim frm As New Form1
            Me.Hide()
        End If
    End Sub
Quando carrego no Delete a form desaparece (tal como pretendido) ... mas quanto tento carregar no Insert a form nao aparece ....
 
Última edição pelo moderador:
Qual é o código que faz isto ?

Código:
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = Keys.Insert Then
            Dim frm As New Form1
            Me.Show()
        End If
        If e.KeyCode = Keys.Delete Then
            Dim frm As New Form1
            Me.Hide()
        End If
    End Sub
 
Última edição pelo moderador:
Tenta assim:

Código:
If e.KeyCode = Keys.Insert Then
Dim frm As New Form2
frm.Show()
End If
If e.KeyCode = Keys.Delete Then
For Each frm As Form In Application.OpenForms
If frm.Name = "Form2" Then
frm.Close()
End If
Next
End If
 
Tenta assim:

Código:
If e.KeyCode = Keys.Insert Then
Dim frm As New Form2
frm.Show()
End If
If e.KeyCode = Keys.Delete Then
For Each frm As Form In Application.OpenForms
If frm.Name = "Form2" Then
frm.Close()
End If
Next
End If

no next ele da
invalid operation exeption ...
 
Por acaso está a trabalhar num form MDI ?

Explica um pouco o que tens ... está só a utilizar meias palavras e assim é dificil adivinhar o que queres.
 
Código:
 Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = Keys.Insert Then
            Dim frm As New Form1
            Me.Show()
        End If
        If e.KeyCode = Keys.Delete Then
            Dim frm As New Form1
            Me.Hide()
        End If
    End Sub
Quando carrego no Delete a form desaparece (tal como pretendido) ... mas quanto tento carregar no Insert a form nao aparece ....

quando carregas no insert a form nao aparece porque a form nao detecta que carregaste na tecla.. quando usas o form1_keydown ele so detecta se a janela activa for essa form..

se tiveres uma caixa de texto nessa form e se o cursor estiver nessa caixa tb nao vai ser detetada pela form_keydown. (nesse caso seria text1_keydown)


para fazeres o que queres tens de recorrer à API
 
quando carregas no insert a form nao aparece porque a form nao detecta que carregaste na tecla.. quando usas o form1_keydown ele so detecta se a janela activa for essa form..

se tiveres uma caixa de texto nessa form e se o cursor estiver nessa caixa tb nao vai ser detetada pela form_keydown. (nesse caso seria text1_keydown)


para fazeres o que queres tens de recorrer à API


Errado, excepto alguns controlos como o DataGridView o evento Form.KeyDown detecta sempre.
 
yap, mas continua a nao detectar se a form nao estiver em 1ºplano..
e se ele poe a form invisivel, vai deixar de detectar teclas

bem, mas ajuda la o rapaz a resover o problema dele...
afinal sei menos do que pensava, sorry

ja não toco em VB à muuuito tempo
 
Back
Topo