Уничтожение Windows в GTK # - PullRequest
       9

Уничтожение Windows в GTK #

0 голосов
/ 24 августа 2009

У меня в GTK # есть диалог, который открывается щелчком мыши, и после нажатия на него диалог должен быть снова закрыт. Нужно ли вызывать оба метода Hide () и Destroy () в окне?

Вот мой код для запуска диалога:

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

А вот соответствующая часть окна конфигурации:

public partial class MyConfigWindow  : Gtk.Dialog
{

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

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

Когда я звоню только this.Destroy (), главное окно снова становится чувствительным (поэтому myConfWindow.Run () завершено), но диалог все еще виден.

1 Ответ

4 голосов
/ 24 августа 2009

Вы пропустили вызов уничтожения в процедуре ConfigureDialog ...

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

Надеюсь, это поможет.

...