Frage

Ich habe einen Dialog in GTK #, die mit einem Mausklick geöffnet werden, und nachdem eine Schaltfläche in Anklicken sollte der Dialog wieder geschlossen werden. Muss ich beide Methoden ausblenden () aufrufen und Destroy () auf dem Fenster?

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 Konfigurationsfensters:

public partial class MyConfigWindow  : Gtk.Dialog
{

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

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

Wenn ich nur anrufen this.Destroy () das Hauptfenster wird empfindlich wieder (also myConfWindow.Run () beendet ist), aber der Dialog ist noch sichtbar.

War es hilfreich?

Lösung

Sie fehlt das Gespräch zerstört im ConfigureDialog Verfahren ...

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

Ich hoffe, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top