Ir para o conteúdo
rui_fernandes

[vb.net 2005] evento de formulario....

Mensagens Recomendadas

rui_fernandes    0
rui_fernandes

existe algum evento do formulario k me detecte a tecla k carrego???

por exemplo, se carregar na tecla ENTER ele me mande uma MSGBOX.

ja tentei c o evento keypress, mas n obtive nenhuma MSGBOX, mas testei c uma combobox e se carregar em ENTER ele mostra-me a mensagem.

agradecia a ajuda.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Gooden    0
Gooden

    Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
        If e.KeyChar = Chr(13) Then
            MsgBox("Enter")
        End If
    End Sub

Beijos :thumbsup:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
rui_fernandes    0
rui_fernandes


    Private Sub FRMFornecedorAlterar_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
        If e.KeyChar = Chr(13) Then
            MsgBox("Enter")
        End If
    End Sub

amigo gonden tambem ja fiz assim e nao me funciona, porque imagina, se tiver a preencher textboxs, e se carregar em ENTER, ele tem de validar as textboxs, e depois introduzir na BD, mas isso nao e o problema, eu kero e detecte o ENTER.

terei k meter este codigo para todas as textboxs ????

nao dará assim no formulario ???  :hmm:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Asgorath    0
Asgorath
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress, TextBox2.KeyPress
        If e.KeyChar = Chr(13) Then
            '' valida 
        End If
    End Sub

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
rui_fernandes    0
rui_fernandes

lol , isso ja sabia...mas se tenh 15 textbox para preencher vou ter de por esse codigo pa todos ??

nao me responderam a pergunta k fiz a cima...

mas obrigado na mesma.  :thumbsup:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
rui_fernandes    0
rui_fernandes

mas, epah assim n fica cm eu kero, tipo, eu kero e kd a tecla k for carregado se for o ENTER, que me mande uma MSGBOX, mas esteja a fazer qualquer coisa, esteja a preencher uma textbox, esteja a selecionar um item de uma COMBO, qualquer coisa...

por isso devia ser num evento do formulario... penso eu... ou estarei errado ????

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Gooden    0
Gooden

Rui ao fazer enter na form faz o seguinte:

  Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
        Dim txt As New TextBox
        For Each txt In Me.Controls
            If txt.Text = vbNull Then
                MsgBox("Vazia")
            End If
        Next
    End Sub

ou assim:

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If e.KeyChar = Chr(13) Then
            Dim txt As New TextBox
            For Each txt In Me.Controls
                If txt.Text = "" Then
                    MsgBox("Vazia")
                End If
            Next
        End If
    End Sub

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
rui_fernandes    0
rui_fernandes

EPAH, O 1º CODIGO NAO funciona....

o 2º funciona, mas kd acabar de currer as textbox da erro por ter outros tipos de controles...

mas n faz o k kero...eu keria no evento do formulario, porque nas textbox ja testei e funciona..... :X

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Gooden    0
Gooden

rui dame uns minutos

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If e.KeyChar = Chr(13) Then
            Dim txt As New Control
            For Each txt In Me.Controls()
                If TypeOf (txt) Is TextBox Then
                    Dim textbox As TextBox = txt
                    If textbox.Text = "" Then
                        MessageBox.Show("Por Favor Preencha todos os Campos!")
                    End If
                End If
            Next
        End If
    End Sub

um cadinho mais complexo e mais seguro de erros :thumbsup:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Gooden    0
Gooden

Golden??? o.0 n sei kem e esse mas okok...

Tipo podes usar windows keyhook e um formfocus.... mas tipo se meteres no form key press ele n funciona direito :|

Perai vou ver isso aki ok?

:wallbash:

  Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress, TextBox1.KeyPress, TextBox2.KeyPress
        If e.KeyChar = Chr(13) Then
            Dim txt As New Control
            For Each txt In Me.Controls()
                If TypeOf (txt) Is TextBox Then
                    Dim textbox As TextBox = txt
                    If textbox.Text = "" Then
                        MessageBox.Show("Por Favor Preencha todos os Campos!")
                    End If
                End If
            Next
        End If
    End Sub

a unica maneira k arranjei e esta.... no fim tens de meter o nome de todas as textbox.keypress

o pa e a melhor e mais segura maneira

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tiago Salgado    2
Tiago Salgado

Tanta confusão :D

Rui, no evento Load do teu form, adicionas esta linha

Me.KeyPreview = True

Depois já podes usar o código cedido inicialmente pelo gooden e deve-te resolver o problema

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress        
If e.KeyChar = Chr(13) Then
            MsgBox("Enter")        
End If    
End Sub

Cumps

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tiago Salgado    2
Tiago Salgado

A mim funciona na perfeição.

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
        If e.KeyChar = Chr(13) Then
            MsgBox("teste")
        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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tiago Salgado    2
Tiago Salgado

mas para que serve o keypreview?

Serve para indicares se queres que o Form "escute" todos os eventos (KeyPress, KeyUp e KeyDown) disparados noutros objectos.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade