문제

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 () 끝났지 만 대화는 여전히 보입니다.

도움이 되었습니까?

해결책

구성된 구성 절차에서 파괴 호출이 누락되었습니다 ...

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

도움이되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top