gpt4 book ai didi

mono - Gtk#销毁事件

转载 作者:行者123 更新时间:2023-12-04 23:10:08 25 4
gpt4 key购买 nike

在 Gtk# 中,我可以为“destroy”事件连接一个处理程序,但它永远不会被调用。此应用程序从不打印任何内容。 Gtk 文档说“销毁”事件只有在设置了某个标志时才会发送,并且还说这个标志是由 Gdk 自动设置的。

这令人沮丧,因为它与正常工作的纯 Gtk+ 代码基本相同。除了监听“destroy”事件,我如何知道何时调用 Application.Quit()

using System;
using Gtk;

public class MainWindow {
public static void Main(string[] args)
{
Application.Init();
Window win = new Window("Test");
win.Resize(200, 200);
win.DestroyEvent += new DestroyEventHandler(OnDestroy);
win.ShowAll();
Application.Run();
}

private static void OnDestroy(object o, DestroyEventArgs args)
{
Console.WriteLine("OnDestroy");
}
}

附言我对“删除”事件不感兴趣。

最佳答案

gtk-sharp 包装器安装了它自己的销毁事件处理程序,该处理程序首先被调用并断开您的处理程序。然而,它又提供了一个 Destroyed 事件。您可以使用它,如下所示:

using System;
using Gtk;

public class MainWindow {
public static void Main(string[] args)
{
Application.Init();
Window win = new Window("Test");
win.Resize(200, 200);
win.Destroyed += new EventHandler(OnDestroy);
win.ShowAll();
Application.Run();
}

private static void OnDestroy(object o, EventArgs args)
{
Console.WriteLine("OnDestroy");
Application.Quit();
}
}

关于mono - Gtk#销毁事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13171222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com