2009-08-23 5 views
0

J'ai un dialogue dans GTK # qui s'ouvre par un clic de souris, et après avoir cliqué sur un bouton, le dialogue devrait être refermé. Dois-je appeler les deux méthodes Hide() et Destroy() sur la fenêtre?Détruire Windows dans GTK #

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 je n'appelle this.Destroy() la fenêtre principale devient à nouveau sensible (donc myConfWindow.Run() est terminée), mais le dialogue est toujours visible.

Répondre

4

Votre manque à l'appel dans la procédure détruire ConfigureDialog ...

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

espoir qui aide.