Principales respuestas
No me funciona los estados.

Pregunta
-
Hola:
Tengo en un Form1 un button1 y un checkBox. Al ejecutar la aplicación debe ponerse verde el button.
Si marco el checkbox, el boton se pone rojo. Ejecutado funciona bien.
Ahora cierro el programa y cambio la propiedad del checkbox en checked = true:
Ejecuto el programa y no me aparece el color Rojo que supuestamente al detectar el checkBox en checked parece que no ha hecho nada.
¿Cuál es el problema y cómo lo soluciono?
Saludos.
http://electronica-pic.blogspot.com
Respuestas
-
hola
es que deberias trabajar esto en el Form_Load cuando se inicia la aplicacion
private void Form_Load(...) { if(checkBox1.Checked) button1.BackgroundColor = Color.Green; else button1.BackgroundColor = Color.Green; }
de esta forma aplicas el estado inicial cuando arranca la aplicacion
----
tambien se puede hacer mas simple, si sabes que el check estara marcado cuando arranca podrias ir a las propiedades del boton y ponerlo en verde directamente en tiempo de diseño
despues ya aplicara la logica que tengas en el evento CheckedChanged del check
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Editado Leandro TuttiniMVP viernes, 13 de marzo de 2015 9:56
- Propuesto como respuesta Karen MalagónModerator viernes, 13 de marzo de 2015 18:00
- Marcado como respuesta Metaconta viernes, 13 de marzo de 2015 20:32
-
using System; using System.Drawing; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public bool Estado1 { get { return checkBox1.Checked; } set { button1.BackColor = value ? Color.Red : Color.Green; } } public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { DataBindings.Add("Estado1", checkBox1, "Checked"); } } }
- Propuesto como respuesta Karen MalagónModerator viernes, 13 de marzo de 2015 18:00
- Marcado como respuesta Metaconta viernes, 13 de marzo de 2015 20:32
-
Así también me funciona pero no se si es la programación más adecuada.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Estado_Chec { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void checkBox1_CheckedChanged(object sender, EventArgs e) { Check_HOLA(); } private void Form1_Load(object sender, EventArgs e) { Check_HOLA(); } private void Check_HOLA() { if (checkBox1.Checked == true) { button1.BackColor = Color.Red; } else { button1.BackColor = Color.Green; } } } }
http://electronica-pic.blogspot.com
- Marcado como respuesta Metaconta sábado, 14 de marzo de 2015 16:11
Todas las respuestas
-
Pon el codigo, pero el problema es que al iniciar la aplicación no compruebas el estado del check, seguro que solo lo haces cundo pulsas el boton.
Es de buena educación dar las gracias cuando te ayudan, si alguna respuesta te ha sido útil agradécelo marcándola como útil.
-
hola
es que deberias trabajar esto en el Form_Load cuando se inicia la aplicacion
private void Form_Load(...) { if(checkBox1.Checked) button1.BackgroundColor = Color.Green; else button1.BackgroundColor = Color.Green; }
de esta forma aplicas el estado inicial cuando arranca la aplicacion
----
tambien se puede hacer mas simple, si sabes que el check estara marcado cuando arranca podrias ir a las propiedades del boton y ponerlo en verde directamente en tiempo de diseño
despues ya aplicara la logica que tengas en el evento CheckedChanged del check
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Editado Leandro TuttiniMVP viernes, 13 de marzo de 2015 9:56
- Propuesto como respuesta Karen MalagónModerator viernes, 13 de marzo de 2015 18:00
- Marcado como respuesta Metaconta viernes, 13 de marzo de 2015 20:32
-
using System; using System.Drawing; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public bool Estado1 { get { return checkBox1.Checked; } set { button1.BackColor = value ? Color.Red : Color.Green; } } public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { DataBindings.Add("Estado1", checkBox1, "Checked"); } } }
- Propuesto como respuesta Karen MalagónModerator viernes, 13 de marzo de 2015 18:00
- Marcado como respuesta Metaconta viernes, 13 de marzo de 2015 20:32
-
Así también me funciona pero no se si es la programación más adecuada.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Estado_Chec { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void checkBox1_CheckedChanged(object sender, EventArgs e) { Check_HOLA(); } private void Form1_Load(object sender, EventArgs e) { Check_HOLA(); } private void Check_HOLA() { if (checkBox1.Checked == true) { button1.BackColor = Color.Red; } else { button1.BackColor = Color.Green; } } } }
http://electronica-pic.blogspot.com
- Marcado como respuesta Metaconta sábado, 14 de marzo de 2015 16:11