Casilla de verificación en la aplicación de Windows C#
Frecuentes
Visto 816 veces
0
Tengo 3 casillas de verificación y puedo desactivar dos de ellas si una está marcada. Pero quiero que si se marca el tercero, los dos primeros se apaguen. ¿Cómo puedo hacer eso?
Esto es lo que estoy intentando.
private void chkResFoodVeg_CheckedChanged(object sender, EventArgs e)
{
//disables the other checkbox if one is checked
this.chkResFoodNveg.Enabled = !this.chkResFoodVeg.Checked;
}
private void chkResFoodNveg_CheckedChanged(object sender, EventArgs e)
{
this.chkResFoodVeg.Enabled = !this.chkResFoodNveg.Checked;
}
private void chkResFoodBoth_CheckedChanged(object sender, EventArgs e)
{
this.chkResFoodBoth.Enabled = !this.chkResFoodNveg.Checked &&
!this.chkResFoodVeg.Checked;
}
La última parte del código no funciona. Debería desactivar las dos primeras casillas de verificación.
Muchas Gracias
2 Respuestas
1
Su lógica es al revés, necesita dos asignaciones que no combinen las entradas.
private void chkResFoodBoth_CheckedChanged(object sender, EventArgs e)
{
this.chkResFoodNveg.Enabled = !this.chkResFoodBot.Checked;
this.chkResFoodVeg.Enabled = !this.chkResFoodBot.Checked;
}
Sin embargo, por la forma en que describe las acciones de sus botones, parece que está tratando de emular el comportamiento de un Radiobutton, tal vez deberías usar eso en su lugar. Solo te permitirá elegir una de las 3 opciones a la vez.
Respondido el 16 de Septiembre de 13 a las 00:09
1
Parece un trabajo para el Radiobutton! Aunque es posible implementar lo que quieras usando el Caja - Es probable que sea la herramienta incorrecta para este trabajo.
Al agregarlos a un formulario de Windows, se implementa automáticamente la funcionalidad que desea siempre que pertenezcan al mismo objeto contenedor como un GroupBox or Panel.
Respondido el 16 de Septiembre de 13 a las 01:09
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas c# checkbox or haz tu propia pregunta.
¿Parece que en realidad solo quieres usar botones de opción? - Ryan Cavanaugh
Utilice el método Click() en estos en su lugar. O haga lo que sugirió @RyanCavanaugh y use botones de radio, ya que parece que está reinventando la rueda. - DonBoitnott
Gracias, usaré los botones de radio. - user2461116