C#:使用 Gtk 在对话框中从 MainWindow 更改对象
C#: Change Object from MainWindow in an Dialog using Gtk
我认为这只是一个小问题,但我没有得到解决。
我有一个带有 Gtk.Window 和 Gtk.Dialog 的程序。在 Window 中,我使用了一个自编码对象。对话框需要知道对象才能更改它。当您单击“确定”按钮时,Window 的对象必须知道所做的更改。
任何人都可以给我举个例子吗?
非常感谢。
对话框有一个您可以挂接的响应事件,传递给处理程序的参数是按下的对话框响应按钮。
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 class:
创建了一个对话框
public MyDialog : Gtk.DialogBox
{
...
}
在此 class 添加属性以获取值:
// 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;
}
}
所以从你的 main window,你可以获取和设置内容,正如 Skyler 之前提到的那样。
我认为这只是一个小问题,但我没有得到解决。
我有一个带有 Gtk.Window 和 Gtk.Dialog 的程序。在 Window 中,我使用了一个自编码对象。对话框需要知道对象才能更改它。当您单击“确定”按钮时,Window 的对象必须知道所做的更改。
任何人都可以给我举个例子吗?
非常感谢。
对话框有一个您可以挂接的响应事件,传递给处理程序的参数是按下的对话框响应按钮。
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 class:
创建了一个对话框public MyDialog : Gtk.DialogBox
{
...
}
在此 class 添加属性以获取值:
// 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;
}
}
所以从你的 main window,你可以获取和设置内容,正如 Skyler 之前提到的那样。