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