我有2个GUI的WinForms程序。我使用一个GUI
并使用
GUI
var gui = new FormGui("SomeVar", someOthervar);
gui.ShowDialog();
我使用ShowDialog()
或Show()
取决于我需要获得的内容。当我完成后,我想将结果(有时它是2个字符串,有时甚至更多)传递回调用Mother GUI
的{{1}}。
最好的方法是什么?我在考虑使用全局变量,但不确定这是否是最佳方法?
答案 0 :(得分:4)
您可以在FormGui
上创建属性并在表单中设置这些属性。完成表单后,您可以从对表单的引用中获取这些属性:
var gui = new FormGui("SomeVar", someOthervar);
gui.ShowDialog();
var result = gui.Result;
编辑:关于您的评论:
假设您的子表单上有一些按钮或用户可以与之交互的内容。或者,如果有关闭按钮,则单击:
private void buttonCloseClick(object sender, EventArgs e)
{
this.Result = new ResultObject()....
}
编辑#2 关于您的第二条评论:
是的,在FormGui类中,您需要定义一个名为Result
的对象:
public partial class FormGui : Form
{
public ResultObject Result {get;set;}
}
ResultObject
只是我正在编造的东西。关键是您可以控制FormGui
,因此您可以添加所需的任何属性,然后在FormGui
对象上访问它。
答案 1 :(得分:1)
您可以在FormGui
类上添加包含要在父表单中使用的结果的属性。
此外,您也可以使用ShowDialog()
的结果来传回信息 - 尽管这是DialogResult枚举的有限值。
答案 2 :(得分:0)
您可以使用ShowDialog在子窗口上调用,使用新的公共属性来设置结果,当您关闭对话框时,父GUI应该能够在下一个代码行中看到结果。
答案 3 :(得分:0)
BFree 的答案足以完成您的任务
我建议为所有表单添加属性的简单方法
使用System.Windows.Form
创建一个新类public class Form : System.Windows.Forms.Form
{
//add properties
}
检查表单中的属性