//Constructores de los botones biestado
boton_biestado1 = new ToggleButton ();
boton_biestado2 = new ToggleButton (string);
La propiedad Active de los ToggleButton nos permite forzar el estado del botón a uno preciso, u obtener el valor de este., la manera más sencilla de hacer esto sería con una retrollamada parecidada a:
//Añadido al evento Clicked o Toggled
private void OnButtonToggled(object obj, EventArgs args)
{
ToggleButton boton_biestado1 = (ToggleButton) obj;
if (boton_biestado1.Active) {
//Botón oprimido
} else {
//Estado normal
}
}
Tener en cuenta que si se cambia el estado del ToggleButton se hace una llamada a los eventos Clicked y Toggled.
Ejemplo.
El ejemplo que se muestra a continuación corresponde a la imagen del inicio de la entrada, el programa funciona de manera muy sencilla, solo modificando el string del Label del ToggleButton, haciendo que el mensaje desplegado sea "Activo" si el Active es true, o "Inactivo" en caso contrario.public class VentanaPrincipal : Window
{
HBox conGen;
ToggleButton botonBiestado;
public VentanaPrincipal () : base ("ToggleButton - GTK#")
{
SetSizeRequest (300, 300);
BorderWidth = 90;
WindowPosition = WindowPosition.CenterAlways;
DeleteEvent += delegate {
Application.Quit ();
};
botonBiestado = new ToggleButton ("Estado");
botonBiestado.Toggled += new EventHandler (OnButtonToggled);
conGen = new HBox (false, 0);
conGen.PackStart (botonBiestado);
Add (conGen);
ShowAll ();
}
private void OnButtonToggled(object obj, EventArgs args)
{
ToggleButton boton_biestado1 = (ToggleButton) obj;
if (boton_biestado1.Active) {
botonBiestado.Label = "Activo";
} else {
botonBiestado.Label = "Inactivo";
}
}
}
No hay comentarios:
Publicar un comentario