habilitar boton por medio a textbox

17/11/2005 - 17:36 por Joel John | Informe spam
hola.
esto es una caja de texto que me habilita un boton dependiendo si hay datos
en ella. y funciona. pero:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged

If TextBox1.Text <> 0 Then
Button1.Enabled = True
Else
Button1.Enabled = False
End If

End Sub
cuando escribo algo se habilita (hasta ahi esta bien) pero en caso de que
retroceda o borre lo escrito inmediatamente da un error. ¿porque?
¿que esta mal?

Preguntas similare

Leer las respuestas

#1 Javier (Clevertec)
17/11/2005 - 18:09 | Informe spam
Porque estás haciendo una comparación entre una cadena nula no convertible en
número y un número (el cero)

Sustituye el contenido de la función por esto:

Button1.Enabled = TextBox1.Text <> ""

y lograrás tu objetivo; el botón se inhabilitará si la caja de texto está
vacía.

No hace falta que hagas un If-Then porque la expresión TextBox1.Text<>"" es
evaluada por Visual Basic como True o False antes de asignala a la propiedad
del boton.
Javier Muñoz


"Joel John" escribió:

hola.
esto es una caja de texto que me habilita un boton dependiendo si hay datos
en ella. y funciona. pero:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged

If TextBox1.Text <> 0 Then
Button1.Enabled = True
Else
Button1.Enabled = False
End If

End Sub
cuando escribo algo se habilita (hasta ahi esta bien) pero en caso de que
retroceda o borre lo escrito inmediatamente da un error. ¿porque?
¿que esta mal?
Respuesta Responder a este mensaje
#2 Jorge Serrano [MVP VB]
17/11/2005 - 18:12 | Informe spam
Utiliza TextBox1.Text.Length <> 0 en lugar de TextBox1.Text <> 0

Espero que eso resuelva tu problema.

Un saludo.
Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Weblog de Jorge Serrano
http://weblogs.golemproject.com/jorge/


"Joel John" wrote:

hola.
esto es una caja de texto que me habilita un boton dependiendo si hay datos
en ella. y funciona. pero:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged

If TextBox1.Text <> 0 Then
Button1.Enabled = True
Else
Button1.Enabled = False
End If

End Sub
cuando escribo algo se habilita (hasta ahi esta bien) pero en caso de que
retroceda o borre lo escrito inmediatamente da un error. ¿porque?
¿que esta mal?
Respuesta Responder a este mensaje
#3 Joel John
17/11/2005 - 20:31 | Informe spam
muy acertadas sus respuesta pero me falto algo.

son tres cajas de texto.

como hago que evalue las tres cajas de texto y no una sola?
puse el codigo en cada una de las cajas. pero se activa desde que cualquier
caja tiene algo.


"Jorge Serrano [MVP VB]" wrote:

Utiliza TextBox1.Text.Length <> 0 en lugar de TextBox1.Text <> 0

Espero que eso resuelva tu problema.

Un saludo.
Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Weblog de Jorge Serrano
http://weblogs.golemproject.com/jorge/


"Joel John" wrote:

> hola.
> esto es una caja de texto que me habilita un boton dependiendo si hay datos
> en ella. y funciona. pero:
>
> Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles TextBox1.TextChanged
>
> If TextBox1.Text <> 0 Then
> Button1.Enabled = True
> Else
> Button1.Enabled = False
> End If
>
> End Sub
> cuando escribo algo se habilita (hasta ahi esta bien) pero en caso de que
> retroceda o borre lo escrito inmediatamente da un error. ¿porque?
> ¿que esta mal?
Respuesta Responder a este mensaje
#4 Javier (Clevertec)
17/11/2005 - 20:57 | Informe spam
Muy sencillo.

Pegas en cada una de las cajas lo siguiente:

Button1.Enabled = TextBox1.Text <> "" and TextBox2.Text <> "" and
TextBox3.Text <> ""

o, con la propiedad que apunta Jorge:

Button1.Enabled = TextBox1.Text.Length + TextBox1.Text.Length +
TextBox1.Text.Length > 0

Un saludo,
Javier Muñoz


"Joel John" escribió:

hola.
esto es una caja de texto que me habilita un boton dependiendo si hay datos
en ella. y funciona. pero:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged

If TextBox1.Text <> 0 Then
Button1.Enabled = True
Else
Button1.Enabled = False
End If

End Sub
cuando escribo algo se habilita (hasta ahi esta bien) pero en caso de que
retroceda o borre lo escrito inmediatamente da un error. ¿porque?
¿que esta mal?
Respuesta Responder a este mensaje
#5 Javier (Clevertec)
17/11/2005 - 21:05 | Informe spam
Perdona, he tenido un fallo debido a que me ha pedido un relogin el sistema,
el segundo ejemplo es, correctamente:

Button1.Enabled = TextBox1.Text.Length + TextBox2.Text.Length +
TextBox3.Text.Length > 0

Se podría mejorar el código para prevenir la ampliación, creando una función
común, u otros métodos, pero si es sólo para tres no merece la pena.

Un saludo
Javier Muñoz


"Javier (Clevertec)" escribió:

Muy sencillo.

Pegas en cada una de las cajas lo siguiente:

Button1.Enabled = TextBox1.Text <> "" and TextBox2.Text <> "" and
TextBox3.Text <> ""

o, con la propiedad que apunta Jorge:

Button1.Enabled = TextBox1.Text.Length + TextBox1.Text.Length +
TextBox1.Text.Length > 0

Un saludo,
Javier Muñoz


"Joel John" escribió:

> hola.
> esto es una caja de texto que me habilita un boton dependiendo si hay datos
> en ella. y funciona. pero:
>
> Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles TextBox1.TextChanged
>
> If TextBox1.Text <> 0 Then
> Button1.Enabled = True
> Else
> Button1.Enabled = False
> End If
>
> End Sub
> cuando escribo algo se habilita (hasta ahi esta bien) pero en caso de que
> retroceda o borre lo escrito inmediatamente da un error. ¿porque?
> ¿que esta mal?
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida