代码之家  ›  专栏  ›  技术社区  ›  MadBoy

在Winforms C中,在GUI之间传递变量的最佳方式是什么?

  •  0
  • MadBoy  · 技术社区  · 15 年前

    我有两个图形用户界面的WinForms程序。我用一个 GUI 打开另一个 图形用户界面 使用

            var gui = new FormGui("SomeVar", someOthervar);
            gui.ShowDialog();
    

    我用 ShowDialog() Show() 取决于我需要什么。完成后,我希望将结果(有时是2个字符串,有时甚至更多)传递回 Mother GUI 它叫 Child GUI .

    最好的办法是什么?我在考虑使用全局变量,但不确定这是否是最好的方法?

    4 回复  |  直到 15 年前
        1
  •  4
  •   BFree    15 年前

    您可以在 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 只是我编造的。关键是你控制着 福尔马圭 ,以便您可以添加所需的任何属性,然后在 福尔马圭 反对。

        2
  •  1
  •   davisoa    15 年前

    您可以在 FormGui 类,该类包含要在父窗体中使用的结果。

    另外,您可以使用 ShowDialog() 也可以传递信息-尽管这是 DialogResult 枚举。

        3
  •  0
  •   Mor Shemesh    15 年前

    您可以在子窗口上使用ShowDialog调用,使用新的公共属性来设置结果,当您关闭对话框时,父图形用户界面应该能够在下一个代码行中看到结果。

        4
  •  0
  •   Javed Akram    15 年前

    答案是 自由 足够你完成任务了

    我建议用简单的方法向所有表单添加属性

    用System.Windows.Form创建一个新类扩展它

    public class Form : System.Windows.Forms.Form
    {
       //add properties
    }
    

    检查表单中的属性

    推荐文章