none
Validacion Datos Orientada a objetos RRS feed

  • Pregunta

  • hola a todos y gracias por susurespuestas, mi pregunta es, como puedo hacer una validacion de datos orientada a objetos o sea
     if (this.textBox3.Text.Length != 1)
                    {
                        MessageBox.Show("debe escribir solo un caracter");
                    }
                    else if (char.IsLetter(char.Parse(textBox3.Text)))
                    {
                        MessageBox.Show("es letra");
                    }
                    else if (char.IsPunctuation(char.Parse(textBox3.Text)))
                    {
                        MessageBox.Show("es un signo de puntuacion");
                    }
                    else if (char.IsNumber(char.Parse(textBox3.Text)))
                    {
                        MessageBox.Show("es un numero");
                    }
                    else if (char.IsLower(char.Parse(textBox3.Text)))
                    {
                        MessageBox.Show("la letra esta en minuscula");
                    }
    

    como hago para que por ejemplo este bloque de codigo no este dentro del codigo de un formulario, sino que este en una clase aparte y cuando quiera llamar la validacion solo llame al método

    muchas gracia por sus respuestas de verdad soy nuevo en esto de programación

    domingo, 25 de diciembre de 2011 22:19

Respuestas

  • hola

    en que evento actualmente estas escribiendo este codigo ? sera en el keypress

    lo planteo porque usas

    char.Parse(textBox3.Text)

    o sea un textbox podrias no convertir a char si es que el usuario escribe un frase en el textbox, no sera que deberias usar el e.KeyCode o e.KeyChar o sea un metodo de un evento que devuelva la letra que se ingresa ?

    ese codigo asi como lo plantes no puede llevar a ningun metodo que lo haga reutilizable mas que nada porque esta fuertemente vinculado a informacion de un evento en concreto

    evalua los char.Parse(textBox3.Text) porque puedo asegurar que no funcionan si en el textbox escribes mas de una letra, fallaran con un error de conversion de tipos

    saludos

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 25 de diciembre de 2011 23:20
  • Si lo que quieres es tener una clase diferente a la del Form, para poder realizar la validación que ahí incluyes, se puede hacer de varias maneras, yo lo haria mediante parametros en un método en la clase diferente a la del Form, en este ejemplo lo ilustrare asumiendo que la validación se realiza cuando se hace Click sobre un Botón:

     public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Validacion ValidarClass = new Validacion(); // Instanciamos la clase Validacion
                ValidarClass.Validar(textBox1); // Le pasamos como parametro al método, el Textbox al cual se quiere validar
    
    
            }
        }
    
        public class Validacion
        {
    
            public void Validar(TextBox Text)
            {
                if (Text.Text.Length != 1)
                    {
                        MessageBox.Show("debe escribir solo un caracter");
                    }
                    else if (char.IsLetter(char.Parse(Text.Text)))
                    {
                        MessageBox.Show("es letra");
                    }
                    else if (char.IsPunctuation(char.Parse(Text.Text)))
                    {
                        MessageBox.Show("es un signo de puntuacion");
                    }
                    else if (char.IsNumber(char.Parse(Text.Text)))
                    {
                        MessageBox.Show("es un numero");
                    }
                    else if (char.IsLower(char.Parse(Text.Text)))
                    {
                        MessageBox.Show("la letra esta en minuscula");
    
                    }
    
    
    
            }
    
    
    
        }
    }
    
    


     


    Saludos desde República Dominicana. :)
    • Marcado como respuesta Eduardo PorteschellerModerator martes, 27 de diciembre de 2011 11:04
    • Desmarcado como respuesta nadersful sábado, 31 de diciembre de 2011 19:19
    • Marcado como respuesta nadersful sábado, 31 de diciembre de 2011 19:19
    domingo, 25 de diciembre de 2011 23:21

Todas las respuestas

  • hola

    en que evento actualmente estas escribiendo este codigo ? sera en el keypress

    lo planteo porque usas

    char.Parse(textBox3.Text)

    o sea un textbox podrias no convertir a char si es que el usuario escribe un frase en el textbox, no sera que deberias usar el e.KeyCode o e.KeyChar o sea un metodo de un evento que devuelva la letra que se ingresa ?

    ese codigo asi como lo plantes no puede llevar a ningun metodo que lo haga reutilizable mas que nada porque esta fuertemente vinculado a informacion de un evento en concreto

    evalua los char.Parse(textBox3.Text) porque puedo asegurar que no funcionan si en el textbox escribes mas de una letra, fallaran con un error de conversion de tipos

    saludos

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 25 de diciembre de 2011 23:20
  • Si lo que quieres es tener una clase diferente a la del Form, para poder realizar la validación que ahí incluyes, se puede hacer de varias maneras, yo lo haria mediante parametros en un método en la clase diferente a la del Form, en este ejemplo lo ilustrare asumiendo que la validación se realiza cuando se hace Click sobre un Botón:

     public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Validacion ValidarClass = new Validacion(); // Instanciamos la clase Validacion
                ValidarClass.Validar(textBox1); // Le pasamos como parametro al método, el Textbox al cual se quiere validar
    
    
            }
        }
    
        public class Validacion
        {
    
            public void Validar(TextBox Text)
            {
                if (Text.Text.Length != 1)
                    {
                        MessageBox.Show("debe escribir solo un caracter");
                    }
                    else if (char.IsLetter(char.Parse(Text.Text)))
                    {
                        MessageBox.Show("es letra");
                    }
                    else if (char.IsPunctuation(char.Parse(Text.Text)))
                    {
                        MessageBox.Show("es un signo de puntuacion");
                    }
                    else if (char.IsNumber(char.Parse(Text.Text)))
                    {
                        MessageBox.Show("es un numero");
                    }
                    else if (char.IsLower(char.Parse(Text.Text)))
                    {
                        MessageBox.Show("la letra esta en minuscula");
    
                    }
    
    
    
            }
    
    
    
        }
    }
    
    


     


    Saludos desde República Dominicana. :)
    • Marcado como respuesta Eduardo PorteschellerModerator martes, 27 de diciembre de 2011 11:04
    • Desmarcado como respuesta nadersful sábado, 31 de diciembre de 2011 19:19
    • Marcado como respuesta nadersful sábado, 31 de diciembre de 2011 19:19
    domingo, 25 de diciembre de 2011 23:21