Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C:使用Gtk在对话框中从主窗口更改对象_C#_Object_Modal Dialog_Gtk# - Fatal编程技术网

C# C:使用Gtk在对话框中从主窗口更改对象

C# C:使用Gtk在对话框中从主窗口更改对象,c#,object,modal-dialog,gtk#,C#,Object,Modal Dialog,Gtk#,我认为这只是一个小问题,但我没有得到解决 我有一个带有Gtk.窗口和Gtk.对话框的程序。在窗口中,我使用自编码对象。对话框需要知道对象才能更改它。单击“确定”按钮时,窗口对象必须知道所做的更改 有人能给我举个例子吗 非常感谢。对话框有一个响应事件,您可以钩住它,在传递给处理程序的参数中是按下的对话框响应按钮 var md = new MessageDialog ( null, DialogFlags.DestroyWithParent,

我认为这只是一个小问题,但我没有得到解决

我有一个带有Gtk.窗口和Gtk.对话框的程序。在窗口中,我使用自编码对象。对话框需要知道对象才能更改它。单击“确定”按钮时,窗口对象必须知道所做的更改

有人能给我举个例子吗


非常感谢。

对话框有一个响应事件,您可以钩住它,在传递给处理程序的参数中是按下的对话框响应按钮

var md = new MessageDialog (
            null,
            DialogFlags.DestroyWithParent,
            MessageType.Info,
            ButtonsType.OkCancel,
            "Your message");

md.Response += (o, args) => {
    if (args.ResponseId == ResponseType.Ok) {
        // do your stuff with the object
    }
};

md.Run ();
md.Destroy ();

我想您已经通过扩展Gtk.dialogbox类创建了一个dialogbox:

public MyDialog : Gtk.DialogBox
{
    ...
}
Insite此类添加属性以获取值:

// The entry containing the customer name
private Entry _customerName;

// Gets or sets the customer name
public string Name
{
    get
    {
        return this._customerName.Text;
    }

    set
    {
        this._customerName.Text = value;
    }
}

因此,正如Skyler之前提到的,您可以从主窗口获取和设置内容。

这正是我所需要的,但我如何访问对话框的输入字段。您访问输入字段仍然有问题吗?还是Kristof回答了您的问题?