Уничтожение Windows в GTK#
Вопрос
У меня есть диалог в 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 ()
закончился), но диалог все еще виден.
Решение
Вам не хватает вызова уничтожения в процедуре ConfigurationDialog...
this.Sensitive = false;
result = myConfWindow.run();
if (result == gtk.RESPONSE_CLOSE:)
myConfWindow.destroy();
this.Sensitive = true;
Надеюсь, это поможет.
Не связан с StackOverflow