Comunidad Underground Hispana  
Visita: Descargas - Foro de juegos - Articulos - Juegos Gratis - Download Free

Retroceder   Comunidad Underground Hispana > Programacion > Carbide C/C#/C++

Respuesta Crear Nuevo Tema
 
Share LinkBack Herramientas Desplegado
Antiguo 30-ene-2010, 10:05   #1
Member
 
Fecha de Ingreso: marzo-2009
Mensajes: 44
Predeterminado Tipo Enum

Hola a todos, en este código:

Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        enum Dias
        {
            Lunes = 1, Martes = 2, Miercoles = 3, Jueves = 4,
            Viernes = 5, Sabado = 6, Domingo = 7
        }

        static string ImprimeDia(string k)
        {
            Dias kitem = (Dias)Enum.Parse(typeof(Dias), k, true);
            return I(kitem);
        }

        static string I(Dias di)
        {
            string s = "";
            switch (di)
            {
                case Dias.Lunes:
                    s = "Tengo que levantarme temprano";
                    break;
                case Dias.Martes:
                    s = "Aun no me recupero";
                    break;
                case Dias.Miercoles:
                    s = "Faltan 2 dias";
                    break;
                case Dias.Jueves:
                    s = "Falta un dia solamente";
                    break;
                case Dias.Viernes:
                    s = "Por fin es viernes";
                    break;
                case Dias.Sabado:
                    s = "Es el mejor dia de la semana";
                    break;
                case Dias.Domingo:
                    s = "Ya mañana es Lunes de nuevo";
                    break;
            }
            return s;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            {
                if (string.IsNullOrEmpty(textBox1.Text))
                {
                    MessageBox.Show("Debe ingresar una fecha en el campo");
                    return;

                }

                if (Enum.IsDefined(typeof(Dias), textBox1.Text))
                {
                    MessageBox.Show("El valor ingresado no pertenece a un dia valido");
                    return;
                } 
                else
                {
                    listBox1.Items.Add(ImprimeDia(textBox1.Text));

                }
            }
            
        }
    }
}
Quisiera saber cómo hacer para controlar el error cuando en el textBox la persona no ingresa una palabra válida (uno de los días de la semana), porque he controlado cuando el text está vacío, y he intentado controlar el otro error con esto:

Código:
if (Enum.IsDefined(typeof(Dias), textBox1.Text))
                {
                    MessageBox.Show("El valor ingresado no pertenece a un dia valido");
                    return;
                }
Pero no me sale,


agradezco de antemano la ayuda,


Saludos,

Dogod

________________________

Art. 6
Poner el código entre las etiquetas de código que son [*code][*/code] ó usar el botón para evitar confundir el comentario con el código y sea mas legible el mensaje.

[Solo usuarios registrados pueden ver los links. ]

Última edición por Fashion; 31-ene-2010 a las 16:08 Razón: NORMAS DEL FORO - ART. 6
Dogod está desconectado   Responder Citando
Antiguo 31-ene-2010, 07:56   #2
Senior Member
 
Fecha de Ingreso: marzo-2007
Mensajes: 477
Predeterminado

no entiendo cómo funciona ésto:
Código:
if (Enum.IsDefined(typeof(Dias), textBox1.Text))
seguramente se deba a mi baja experinecia en C#, igual una solución más... elegante y legible:
Código:
.....
private const static DiasDeLaSemana = new ArrayList("lunes", "martes", "miercoles", "jueves", "viernes", "sabado", "domingo");
....

private void button1_Click(object sender, EventArgs e)
{
 .....
    if(! DiasDeLaSemana.Contains(textBox1.Text.ToLower()){
             // el msg box
    }
}
Voy a explicar por arriba porque el código puede estar plagado de errores sintácticos. Primero, tengo una constante, que es un arreglo que contiene los días de la semana. Cuando quiero saber si un texto es válido, pregunto si está contenido en el arreglo. El ToLowerCase(), es para pasarlo todo a minúsculas para prevenir que si ingresa "Lunes" o "lUnEs", igual me lo tome como válido.
No se el nombre correcto de la función, pero es la idea.
ajr784 esta en línea ahora   Responder Citando
Antiguo 31-ene-2010, 08:08   #3
Member
 
Fecha de Ingreso: marzo-2009
Mensajes: 44
Predeterminado

Elegante tu solución, pero el código que yo puse intenta ser más condescendiente con el usuario, al permitirle equivocarse, el problema es ese error que no sé solucionar,

pero gracias, ojalá alguien más responda,


saludos
Dogod está desconectado   Responder Citando
Antiguo 31-ene-2010, 15:55   #4
Moderador
 
Avatar de Fashion
 
Fecha de Ingreso: junio-2007
Mensajes: 1.764
Predeterminado

- Utiliza un ComboBox, así evitas que el usuario tenga que estar ingresando el día a cada momento:
- Agrega 1 ComboBox, 2 Botones , 1 Label y prueba con el siguiente código:
Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Agregando datos al ComboBox
            comboBox1.Items.Add("Lunes");
            comboBox1.Items.Add("Martes");
            comboBox1.Items.Add("Miercoles");
            comboBox1.Items.Add("Jueves");
            comboBox1.Items.Add("Viernes");
            comboBox1.Items.Add("Sabado");
            comboBox1.Items.Add("Domingo");
        }
        private void button1_Click(object sender, EventArgs e)
        {            
            // verificar si se ha seleccionado un día en el ComboBox
            if(comboBox1.SelectedIndex != -1)
                label1.Text = comboBox1.SelectedItem.ToString();
            else
                label1.Text = "No se ha seleccionado día";
                
        }

        private void button2_Click(object sender, EventArgs e)
        {
            // verificar si se ha seleccionado un día en el ComboBox
            if(comboBox1.SelectedIndex != -1)
            {
                //switch (comboBox1.SelectedIndex) //Usando números
                switch (comboBox1.SelectedItem.ToString())
                {
                    //case 0: //Usando números en vez de texto
                    case "Lunes":
                         label1.Text = "Tengo que levantarme temprano";
                         break;                                                
                    case "Martes":
                         label1.Text = "Aun no me recupero";
                         break;                    
                    case "Miercoles":
                         label1.Text = "Faltan 2 dias";
                         break;
                    case "Jueves":
                        label1.Text = "Falta un dia solamente";
                        break;
                    case "Viernes":
                        label1.Text = "Por fin es viernes";
                        break;
                    case "Sabado":
                        label1.Text = "Es el mejor dia de la semana";
                        break;
                    case "Domingo":
                        label1.Text = "Ya mañana es Lunes de nuevo";
                        break;            
                        
                }                
            }
            else
                label1.Text = "No se ha seleccionado día";            
        }  
                 
    }
}
__________________
Fashion está desconectado   Responder Citando
Respuesta

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks están Activado
Pingbacks están Activado
Refbacks están Activado



La franja horaria es GMT -5. Ahora son las 17:17.



Juegos gratis Underground Mexico Veo Descargas Songs Traducidas Videos De Musica Conservacion Tabs Metal
Noticias
 Juegos De Coche juegos gratis online juegos Utilidades Trucos
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.3.2
Traducción por vBHispano.com