2009-08-23 9 views
0

Ich habe einen Dialog in GTK #, die durch einen Mausklick geöffnet wird, und nach dem Klicken auf eine Schaltfläche, sollte der Dialog wieder geschlossen werden. Muss ich beide Methoden Hide() und Destroy() im Fenster aufrufen?Zerstören von Windows in GTK #

Hier ist mein Code, den Dialog zu starten:

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

Und hier ist der relevante Teil des Konfigurationsfenster:

public partial class MyConfigWindow : Gtk.Dialog 
{ 

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

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

Als ich this.Destroy() wieder das Hauptfenster empfindlich rufen nur bekommt (daher myConfWindow.Run() ist beendet), aber der Dialog ist noch sichtbar.

Antwort

4

Ihr fehlt das zerstören Aufruf im ConfigureDialog Verfahren ...

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

Hoffnung, das hilft.