View Full Version : [VB6] Dúvida TextBox


WinAce_Boy
03-06-2007, 00:02
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

lightMC
03-06-2007, 00:56
será isto que queres? (meter n evento keydown da text1)

If KeyCode = 8 Then
Text2.Text = Left(Text2.Text, Len(Text2.Text) - 1)
End If

WinAce_Boy
04-06-2007, 00:33
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

Xeon3D
08-06-2007, 19:54
Acho que vais ter que te explicar melhor...

Ш¡zard·σf·Шαr
08-06-2007, 20:34
Não estarás a complicar demasiado as coisas?
private sub text1_change()
text2.text = text1.text
end sub

lightMC
09-06-2007, 02:24
Não estarás a complicar demasiado as coisas?
private sub text1_change()
text2.text = text1.text
end sub
oopps.... xD :-D

WinAce_Boy
17-11-2007, 22:19
isso não resulta pois apenas o numero de carateres e k e igual nas duas texboxes e nao os caracteres em si

alfinete
18-11-2007, 02:14
tens de usar o evento keypress



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

Kayvlim
18-11-2007, 18:27
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 ;)

Kayvlim
18-11-2007, 18:42
É um pouco complicado, é. Tem bastantes erros, mas acho que é algo assim que queres:


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 ;)