如何将表单2中的数据传输到表单1

时间:2014-08-03 20:50:37

标签: c# winforms

我正在制作一个实时运行的小游戏。输入您的名字时间开始后,它以秒为单位,然后是分钟,然后是小时。所以我把它设置好,当他们让你说你点击一个按钮然后把它们带到另一个表格。在那种形式中有一些按钮,并且根据他们按下它的那个按钮应该发回一个值(小时数)并在表单再次可见时自动将其添加到表单中的当前运行时间。我在form2上有一个后退按钮,如果可能的话,我想在你点击它之后添加它!?

2 个答案:

答案 0 :(得分:0)

一般来说,在表单之间传递数据的解决方案是使用事件。 - 在表格2中声明一个事件 - 在表格1中声明表格2时订阅活动 - 在事件实现上进行任何你想要的操作。

另一种解决方案是使用像Producer-Consumer这样的设计模式。

答案 1 :(得分:0)

您可以使用ctescu建议的事件。另一个选项,如果您可以将子窗体显示为对话框,则只需使用ShowDialog()方法而不是Show()方法。通过这种方式,您可以在关闭后以简单的方式获取属性值。

private void button1_Click(object sender, EventArgs e)
    {
        frmSomeForm frm = new frmSomeForm();
        frm.ShowDialog(this);

        if (frm.DialogResult == System.Windows.Forms.DialogResult.OK)
        {
            //When the form is closed we can retrive values from it                                   
            int timeAdd = frm.UserSelection;                

            //Add number of hours to our property/field            
        }

        //We are finished with the form -- dispose it
        frm.Dispose();           
    }

您需要在子窗体中的“后退按钮”的单击事件中添加所有内容,即设置对话框结果(设置此属性后,窗体将关闭)

private void btnBack_Click(object sender, EventArgs e)
    {
        this.DialogResult = System.Windows.Forms.DialogResult.OK;            
    }
相关问题