Programación General > Visual Basic 6.0 e inferiores

 Validar Text Box Con Propiedad Multiline

(1/3) > >>

Cmps360:
Hola amigos como estan tengo un problema, tengo una validacion para un Text Box pero cuando le aplico la propiedad Multiline=True la validacion no me funciona, la cual es la sigiente:

Select Case KeyAscii
Case Asc(" ")
            If Len(TxtDirProv.Text) = 0 Then
            KeyAscii = 0
        Else
        If Mid(TxtDirProv.Text, Len(TxtDirProv.Text), 1) = " " Then
            KeyAscii = 0
        End If
        End If

la cual me sirve para que no deje espacio en blanco al comienso y despues de un espacio no pueda hacer otro

Bueno no tengo nada mas que preguntar por los momentos agradesco de su ayuda Ok.

ArKaNtOs:
pues no se pero tu codigo es muy rebuscado :P mejor haz un ciclo en un boton y evalua la cadena completa:

Private Sub Command1_Click()
var1 = 0
If IsNull(Text1) = True Then MsgBox "error"
If Left(Text1, 1) = " " Then MsgBox "error"
    For x = 1 To Len(Text1)
        If Mid(Text1, x, 2) = "  " Then MsgBox "error en " & x: Exit Sub
    Next
end sub

checalo haber si te sirve :) bueno nos vemos  :hola:  espero que te ayude bye  :kicking:

Cmps360:
ok lo probare grasias por tu ayuda

Brroz:
Hola.

Tu código no funciona (tampoco en un textbox sin multiline) en el caso de que el usuario escriba en el medio de un texto existente: es decir, la cosa va bien si escribes en el textbox todo seguido, pero si te posicionas en el medio del texto ya existente y escribes ahí, el código ya no funciona.

La cosa podría quedar asín:

--- Código: Text --- Private Sub Text1_KeyPress(Keyascii As Integer)    If Keyascii = 32 Then        If Text1.SelStart = 0 Then            Keyascii = 0        ElseIf Mid(Text1.Text, Text1.SelStart, 1) = " " Then            Keyascii = 0        ElseIf Text1.SelStart + 1 <= Len(Text1.Text) Then            If Mid(Text1.Text, Text1.SelStart + 1, 1) = " " Then                Keyascii = 0            End If        End If    End IfEnd Sub  
También podrías optar por validar el texto mediante el evento en un lostfocus o en un validate (mejor). Te llegaría con una línea así:

--- Código: Text ---    Text1.Text = LTrim(Replace(Text1.Text, Chr(32) & Chr(32), Chr(32))  
No se contempla el caso de evitar un espacio al final del texto ya que no dices nada sobre ello. De todas formas si lo necesitas no te debería costar mucho hacerlo...

Chao.

Cyclop:
No seria mejor hacer un TRIM al final.


Salu2

Cyclopz

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa