Ir al contenido



Foto

Ayuda con un programa de colores


  • Por favor identifícate para responder
1 respuesta en este tema

#1 elfuerte36

elfuerte36

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 03 febrero 2015 - 10:41

Saludos. Tengo una tarea de unaasignatura que estoy cursando en la universidad y consiste en lo siguiente:

Crear un programa en c# con 9 textbox. Cuando el usuario escriba rojo, verde oazul los textbox deben cambiar de color pero debe realizar un conteo de cadatextbox ósea que si hay 3 texbox rojo debe de hacerme un conteo de esos 3texbox pero si cambio el color debe restarse y sumarle al color por el cual cambié.Hasta ahora esto es lo que tengo.

Una clase llamada Trabajo en cual  hice un método llamado Cambiar_Color ya este método le paso  3 parámetros queson el textbox el cual quiero evaluar, y los labels en donde se imprimirá elconteo.



delphi
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Data;
  7. using System.Drawing;
  8. using System.Windows.Forms;
  9.  
  10. namespace colores
  11. {
  12.     class Trabajo
  13.     {
  14.      
  15.  
  16.         public void Cambiar_Color(TextBox Nom,Label Lab1,Label Lab2, Label Lab3)
  17.         {
  18.  
  19.             Frm_color form1 = new Frm_color();
  20.  
  21.             String Texto = Nom.Text.ToLower();
  22.  
  23.             String Text_lab1 = Lab1.Text;
  24.             String Text_lab2 = Lab2.Text;
  25.             String Text_lab3 = Lab3.Text;
  26.  
  27.             Text_lab1 = Text_lab1.Trim();
  28.             Text_lab2 = Text_lab2.Trim();
  29.             Text_lab3 = Text_lab3.Trim();
  30.  
  31.             int Conteo_rojo;
  32.             int Conteo_azul;
  33.             int Conteo_verde;
  34.  
  35.             if (Text_lab1.Length == 0 || Text_lab2.Length == 0 || Text_lab3.Length == 0)
  36.             {
  37.                 Conteo_azul = 0;
  38.                 Conteo_rojo = 0;
  39.                 Conteo_verde = 0;
  40.  
  41.             }
  42.             else
  43.             {
  44.  
  45.                 Conteo_azul = int.Parse(Text_lab1);
  46.                 Conteo_rojo = int.Parse(Text_lab2);
  47.                 Conteo_verde = int.Parse(Text_lab3);
  48.              
  49.            
  50.          
  51.             } 
  52.  
  53.             switch (Texto)
  54.             {
  55.                 case "rojo":
  56.                     Nom.BackColor = Color.Red;
  57.                     if (Texto == "rojo"
  58.                     {
  59.                         Conteo_rojo = Conteo_rojo + 1;
  60.                           Lab2.Text = Conteo_rojo.ToString();
  61.                     }
  62.                     break;
  63.  
  64.                 case "verde":
  65.                     Nom.BackColor = Color.Green;
  66.                     if (Texto == "verde"
  67.                     {
  68.                         Conteo_verde = Conteo_verde + 1;
  69.                     }
  70.                     Lab3.Text = Conteo_verde.ToString();
  71.                     break;
  72.  
  73.                 case "azul":
  74.                     Nom.BackColor = Color.Blue;
  75.                     if (Texto == "azul"
  76.                     {
  77.                         Conteo_azul = Conteo_azul + 1;
  78.                     }
  79.                     Lab1.Text = Conteo_azul.ToString();
  80.                     break;
  81.  
  82.                     default:
  83.                     Nom.BackColor = Color.White;
  84.                     break;
  85.  
  86.  
  87.             }
  88.      
  89.      
  90.      
  91.         }
  92.  
  93.  
  94.     }
  95. }


/********************Separador**********************/

Este es el código del formulario.Aquí hice una instancia de la clase Trabajo() y en el evento textchange de los textbox llamo a su método Cambiar_Color() y le paso los parametros correspondientes.


delphi
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. namespace colores
  12. {
  13.     public partial class Frm_color : Form
  14.     {
  15.    
  16.         Trabajo Tra = new Trabajo();
  17.  
  18.         public Frm_color()
  19.         {
  20.             InitializeComponent();
  21.         }
  22.  
  23.         private void Form1_Load(object sender, EventArgs e)
  24.         {
  25.  
  26.         }
  27.  
  28.         private void label4_Click(object sender, EventArgs e)
  29.         {
  30.  
  31.         }
  32.  
  33.         private void textBox1_TextChanged(object sender, EventArgs e)
  34.         {
  35.             Tra.Cambiar_Color(textBox1, lab_conteo_azul, lab_conteo_rojo, lab_conteo_verde);
  36.          
  37.         }
  38.  
  39.         private void textBox8_TextChanged(object sender, EventArgs e)
  40.         {
  41.             Tra.Cambiar_Color(textBox8, lab_conteo_azul, lab_conteo_rojo, lab_conteo_verde);
  42.         }
  43.  
  44.         private void textBox5_TextChanged(object sender, EventArgs e)
  45.         {
  46.             Tra.Cambiar_Color(textBox5, lab_conteo_azul, lab_conteo_rojo, lab_conteo_verde);
  47.         }
  48.  
  49.         private void textBox10_TextChanged(object sender, EventArgs e)
  50.         {
  51.             Tra.Cambiar_Color(textBox10, lab_conteo_azul, lab_conteo_rojo, lab_conteo_verde);
  52.         }
  53.  
  54.         private void textBox7_TextChanged(object sender, EventArgs e)
  55.         {
  56.             Tra.Cambiar_Color(textBox7, lab_conteo_azul, lab_conteo_rojo, lab_conteo_verde);
  57.         }
  58.  
  59.         private void textBox4_TextChanged(object sender, EventArgs e)
  60.         {
  61.             Tra.Cambiar_Color(textBox4, lab_conteo_azul, lab_conteo_rojo, lab_conteo_verde);
  62.         }
  63.  
  64.         private void textBox9_TextChanged(object sender, EventArgs e)
  65.         {
  66.             Tra.Cambiar_Color(textBox9, lab_conteo_azul, lab_conteo_rojo, lab_conteo_verde);
  67.         }
  68.  
  69.         private void textBox6_TextChanged(object sender, EventArgs e)
  70.         {
  71.             Tra.Cambiar_Color(textBox6, lab_conteo_azul, lab_conteo_rojo, lab_conteo_verde);
  72.          
  73.         }
  74.  
  75.         private void textBox3_TextChanged(object sender, EventArgs e)
  76.         {
  77.             Tra.Cambiar_Color(textBox3, lab_conteo_azul, lab_conteo_rojo, lab_conteo_verde);
  78.          
  79.         }
  80.  
  81.      
  82.  
  83.     }
  84. }


/********************Separador**********************/

Y este es el resultado final:

Imagen Enviada

Comor ven hay 3 de cada uno el problema es la resta no se como hacerla ya e intentado de varias formas una de ellas fue recorrer el formulario con un foreach() y donde sean textbox y el backgroundColor cambie que haga un conteo pero creo que lo estoy llamando en el evento equivocado por que al final el contador queda negativo.Si pueden ayudarme se los agradeceria mucho.

  • 0

#2 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 588 mensajes
  • LocationMar del Plata / Bs As / Argentina

Escrito 04 febrero 2015 - 05:45

guarda cada color correcto en algun lugar, variable o vector.

cuando cambias a otro color correcto, sumas ese y restas al que tenis guardado.
ej:

textbox1 = rojo
variable1 = rojo
aca
rojo = 1
azul = 0
verde = 0
cambio:
textbox2 = rojo
variable2 = rojo
aca
rojo = 2
azul = 0
verde = 0
cambio:
textbox1 = azul
variable1 = rojo
de aca podes descontar en rojo, luego la actualizar a
variable1 = azul
aca:
rojo = 1
azul = 1
verde = 0

(b)
  • 0