Pregunta

Tengo un diálogo en GTK # que consigue abrió con un clic del ratón, y después de hacer clic en un botón en el mismo, el diálogo debe ser cerrada de nuevo. ¿Tengo que llamar a ambos métodos Hide () y destroy () en la ventana?

Aquí está mi código para poner en marcha el diálogo:

protected virtual void ConfigureDialogue (object sender, System.EventArgs e)
{
    MyConfigWindow myConfWindow = new MyConfigWindow ();
    this.Sensitive = false;
    myConfWindow.Run ();
    this.Sensitive = true;
}

Y aquí está la parte correspondiente de la ventana de configuración:

public partial class MyConfigWindow  : Gtk.Dialog
{

    public MyConfigWindow ()
    {
        this.Build();
    }

    protected virtual void onSave (object sender, System.EventArgs e)
    {
        this.Hide();
        this.Destroy ();
    }
}

Cuando única llamada this.Destroy () la ventana principal se de nuevo sensibles (por lo tanto myConfWindow.Run () ha terminado), pero el diálogo es aún visible.

¿Fue útil?

Solución

Su falta la llamada destruir en el procedimiento ConfigureDialog ...

  this.Sensitive = false; 
  result = myConfWindow.run();
  if (result == gtk.RESPONSE_CLOSE:)
    myConfWindow.destroy();
  this.Sensitive = true;

Espero que ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top