Mono 消息对话框未关闭

Mono 消息对话框未关闭,mono,dialog,gtk#,Mono,Dialog,Gtk#,我使用以下代码在应用程序中显示消息对话框: MessageDialog dialog = new MessageDialog(null, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok,

我使用以下代码在应用程序中显示消息对话框:

MessageDialog dialog = new MessageDialog(null,
                                         DialogFlags.Modal,
                                         MessageType.Error, 
                                         ButtonsType.Ok,
                                         "An error occured: " );
dialog.Run();
问题是窗口上的Ok按钮不起任何作用。。。。只有当我按下右上角的X按钮时,窗口才会消失


有什么想法吗?

您需要调用
dialog.Destroy()dialog.Run()之后执行code>

您还可以挂接
响应事件,以获得按钮单击的通知:

    var dialog = new MessageDialog (this,
                                    DialogFlags.Modal, 
                                    MessageType.Info, 
                                    ButtonsType.YesNo, 
                                    "The Hulk could totally take Super Man");
    dialog.Response += (object o, ResponseArgs args) => {
        if (args.ResponseId == ResponseType.Yes) {
            Console.WriteLine("Yes clicked");
        } else if (args.ResponseId == ResponseType.No) {
            Console.WriteLine("No clicked");
        } else if (args.ResponseId == ResponseType.DeleteEvent) {
            Console.WriteLine("Dialog closed without clicking a button");
        }
        dialog.Destroy();
    };

    dialog.Run();

唯一适合我的解决方案。dlg.Destroy()甚至阻止对话框出现。