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