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

[VB6] Dúvida TextBox

Discussão em 'Programação' iniciada por WinAce_Boy, 2 de Junho de 2007. (Respostas: 9; Visualizações: 1160)

  1. WinAce_Boy

    WinAce_Boy Power Member

    Oi pessoal,
    O projecto tem:

    1 form
    2 textbox

    Como faço para no keypress do 1º texto, quando carrego na tecla backspace, é retirado o último carácter que foi inserido na 2º textbox do 2º textbox?

    Obrigado pela atenção ;)
    Abraços
     
  2. lightMC

    lightMC Power Member

    será isto que queres? (meter n evento keydown da text1)

    Código:
    If KeyCode = 8 Then
        Text2.Text = Left(Text2.Text, Len(Text2.Text) - 1)
    End If
     
  3. WinAce_Boy

    WinAce_Boy Power Member

    Não exactamente mas ajudou o bastante obrigado man..
    Já agora, esse codigo retira o ultimo caracter da textbox. Como faço para:
    eu tenho um numero incerto de caracteres na 1ª textbox que de certeza vai ser igual ao da 2ª. como faço para quando carrego no backspace retiro na 2ª textbx, em vez de ser o ultimo caracter, ser o mesmo(falando em sitio(por exemplo o segundo caracter da 1ª textbox ou o penultimo, etc..) e nao em valor)

    Obrigado pela atencao
    Abraços
     
    Última edição: 3 de Junho de 2007
  4. Xeon3D

    Xeon3D 1st Folding then Sex

    Acho que vais ter que te explicar melhor...
     
  5. balute

    balute Power Member

    Não estarás a complicar demasiado as coisas?
    Código:
    private sub text1_change()
    text2.text = text1.text
    end sub
     
  6. lightMC

    lightMC Power Member

    oopps.... xD :-D
     
  7. WinAce_Boy

    WinAce_Boy Power Member

    isso não resulta pois apenas o numero de carateres e k e igual nas duas texboxes e nao os caracteres em si
     
  8. alfinete

    alfinete Power Member

    tens de usar o evento keypress

    Código:
    
       Private Sub txtnome_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtnome.KeyPress
    
           
            Me.Lblinf_nome.Text = " Digite apenas caracteres Letras , espaço, ou back space"
    
            If Not Char.IsLetter(e.KeyChar) And Not e.KeyChar = Convert.ToChar(32) _
               And Not e.KeyChar = Convert.ToChar(8) Then
    
                e.Handled = True
            End If
    
           
    
    
        End Sub
    
    
    este so aceita numeros , backspace e espaço

    ha mais formas de fazer

    esta é apanas uma

    esperoq ue ajude


    tens aqui uma tabela do codigo ascii para brincares com o keypress
     
    Última edição: 18 de Novembro de 2007
  9. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Se bem te percebi, queres que, ao escrever um caracter qualquer na text1, ele escreve no mesmo lugar onde estava o cursor na text1 na text2.
    Isso é um bom desafio :P acho que vou tentar fazer isso. Parece-me ligeiramente complicado, o que aumenta a piada :D

    Quando conseguir, posto de novo ;)
     
  10. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    É um pouco complicado, é. Tem bastantes erros, mas acho que é algo assim que queres:

    Código:
    Option Explicit
    
    Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    
        Dim PosicaoActual As Integer
    
        Text1.SelLength = 0
    
        If KeyCode = vbKeyDelete Then
            PosicaoActual = Text1.SelStart
            Text2.Text = _
                Left(Text2.Text, PosicaoActual) & _
                Mid(Text2.Text, PosicaoActual + 2)
        End If
    
    End Sub
    
    Private Sub Text1_KeyPress(KeyAscii As Integer)
    
        Dim PosicaoActual As Integer
    
        PosicaoActual = Text1.SelStart
        Text1.SelLength = 0
    
        If KeyAscii = vbKeyDelete Then
            MsgBox "delete"
        End If
    
        If KeyAscii = 8 Then 'backspace
            If Not PosicaoActual = 0 Then Text2.Text = Left(Text2.Text, PosicaoActual - 1) & Mid(Text2.Text, PosicaoActual + 1)
        Else
            Text2.Text = Left(Text2.Text, PosicaoActual) & Chr(KeyAscii) & Mid(Text2.Text, PosicaoActual + 1)
        End If
    
    End Sub
    
    (mete duas TextBoxes)

    Acho que a tua ideia é escreveres "1" na primeira caixa e na segunda aparece automaticamente "2", por exemplo (em vez de escrever Chr(KeyAscii) seria Chr(KeyAscii+1)? :P )

    Só não me dou ao trabalho de melhorar porque 1) não tenho tempo e 2) não preciso :P
    Agora se quiseres, melhora-o tu ;)
     
    Última edição: 18 de Novembro de 2007

Partilhar esta Página