1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

(VB 2008) Como posso usar o keypress

Discussão em 'Programação' iniciada por HeXel, 25 de Junho de 2008. (Respostas: 17; Visualizações: 3450)

  1. HeXel

    HeXel Folding Member

    como posso usar o keypress no visual basic 2008 para chamar uma form
     
  2. jpaulino

    jpaulino Power Member

    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: 25 de Junho de 2008
  3. HeXel

    HeXel Folding Member

    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: 25 de Junho de 2008
  4. jpaulino

    jpaulino Power Member

    Mostra lá o que tens ?
     
  5. HeXel

    HeXel Folding Member

    como assim
     
  6. jpaulino

    jpaulino Power Member

    Qual é o código que faz isto ?
     
  7. HeXel

    HeXel Folding Member

    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: 25 de Junho de 2008
  8. jpaulino

    jpaulino Power Member

    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
    
     
  9. HeXel

    HeXel Folding Member

    no next ele da
    invalid operation exeption ...
     
  10. jpaulino

    jpaulino Power Member

    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.
     
  11. HeXel

    HeXel Folding Member

    estou a trabalhar numa form normal
     
  12. HeXel

    HeXel Folding Member

    tens msn messenger e que assim seria muito mais facil
     
  13. PJTuga

    PJTuga Power Member

    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
     
  14. jpaulino

    jpaulino Power Member


    Errado, excepto alguns controlos como o DataGridView o evento Form.KeyDown detecta sempre.
     
  15. PJTuga

    PJTuga Power Member

    ainda não uso o vb2008, mas no VB6 nao detecta
     
  16. jpaulino

    jpaulino Power Member

    Se tiveres definido:

    Me.KeyPreview = True

    Ou directamente nas propriedades do form - detecta!
     
  17. PJTuga

    PJTuga Power Member

    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
     
  18. jpaulino

    jpaulino Power Member

Partilhar esta Página