Question

J'ai un dialogue GTK # qui obtient ouvert par un clic de souris, et après avoir cliqué sur un bouton en elle, le dialogue doit être fermé à nouveau. Dois-je appeler les deux méthodes Hide () et Destroy () sur la fenêtre?

Voici mon code pour lancer le dialogue:

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

Et voici la partie pertinente de la fenêtre de configuration:

public partial class MyConfigWindow  : Gtk.Dialog
{

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

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

Quand j'appelle seulement this.Destroy () la fenêtre principale se sensible à nouveau (donc myConfWindow.Run () a pris fin), mais le dialogue est toujours visible.

Était-ce utile?

La solution

Votre manque le détruire appel dans la procédure ConfigureDialog ...

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

L'espoir qui aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top