none
Ayuda con Referencia a objeto no establecida como instancia de un objeto! RRS feed

  • Pregunta

  • Buenas! Estoy desarrollando una aplicación en la cual en el momento del Login me compruebe mientras el usuario escribe si lo que hace es correcto... Me refiero a un TextBox que solo permite caracteres de la A a la Z y números del 0 al 9 (nada de símbolos o espacios) y en el momento que se introduzca uno de los caracteres no validos, dentro de un TextBlock mostrar un aviso al mismo tiempo que se bloquean los demás objetos hasta que el error sea corregido...

    Lo que tengo es lo siguiente:

    private void textBoxUsuario_TextChanged(object sender, TextChangedEventArgs e)
            {
                Regex Rx = new Regex("^[A-Z a-z 0-9]*$");
                if (!Rx.IsMatch(textBoxUsuario.Text) || textBoxUsuarioTXTUsuario.Text.Contains(" "))
                {
                    TextBlockError.Text = "No se permite el uso de simbolos o espacios";
                    textBoxPass.IsEnabled = false;
                    ButtonIniciar.IsEnabled = false;
                }
                else
                {
                    TextBlockError.Text = "";
                    textBoxPass.IsEnabled = true;
                    ButtonIniciar.IsEnabled = true;
                }
            } 

       

    Todo funciona perfectamente hasta que se ejecuta por el else... (Donde necesito que al corregir, el error el aviso desaparezca y los demás objetos estén activos de nuevo... Pero obtengo el siguiente mensaje de error: Referencia a objeto no establecida como instancia de un objeto.

    Aún no entiendo el por qué....

    De antemano muchas gracias....


    • Editado David0689 viernes, 14 de septiembre de 2012 1:19
    viernes, 14 de septiembre de 2012 1:18

Respuestas

  • ¡Hola!

    A primera vista tu códiogo es correcto.

    Sólo se me ocurre que te podría dar ese error la primera vez que se activa si cuando pasa por el else todavía no están inicializados alguno de los controles:

                   TextBlockError.Text = string.empty;
                    textBoxPass
    .IsEnabled = true;
                   
    ButtonIniciar.IsEnabled = true;

    me refiero al TextBlockError, el textBoxPass, el ButtonIniciar.

    Un saludo,

    • Marcado como respuesta David0689 viernes, 14 de septiembre de 2012 15:25
    viernes, 14 de septiembre de 2012 7:13

Todas las respuestas

  • ¡Hola!

    A primera vista tu códiogo es correcto.

    Sólo se me ocurre que te podría dar ese error la primera vez que se activa si cuando pasa por el else todavía no están inicializados alguno de los controles:

                   TextBlockError.Text = string.empty;
                    textBoxPass
    .IsEnabled = true;
                   
    ButtonIniciar.IsEnabled = true;

    me refiero al TextBlockError, el textBoxPass, el ButtonIniciar.

    Un saludo,

    • Marcado como respuesta David0689 viernes, 14 de septiembre de 2012 15:25
    viernes, 14 de septiembre de 2012 7:13
  • Muchas gracias por la respuesta... De igual manera ya había solucionado el problema, usé el mismo código pero en el evento KeyUp, funciona perfectamente y tiene el mismo resultado que se esperaría del TextChanged
    viernes, 14 de septiembre de 2012 15:26