• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

rui_fernandes

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

23 mensagens neste tópico

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

    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:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites


    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:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
    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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ????

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas o golden, vou ter que por no evento KEYPRESS de todas as textbox isso....

e era o k eu n keria....  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol, desculpa la golden, ai nao, GOODEN... xD

epah, vou experimenter. brigadao.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

fg n conhecia essa o.0

o k o me.keypreviwe faz? :|

ps: Nao funciona :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Meto textbox ?

Testei com 2 textboxs inseridas no formulário e funciona.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu normalmente faço como o Tiago indicou: form com keyPreview = True depois evento keydown do form e funciona na perfeição :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hmmm..... ok entendido chefe \o/ ja aprendi mais 1 coisa.

rui_fernandes mete o resolvido no post

0

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