想要从一个表单中获取数据以将其用作另一个表单中的变量

时间:2015-10-19 14:31:32

标签: c# forms winforms visual-studio-2012

我几乎完成了使用WinForms与VS2012进行Connect4游戏。一切都运行良好,但我想在专用的“开始菜单”窗口中为用户提供选项。在那个菜单上,我有两个组合框,我需要从文本中将它们用作另一个形式(游戏窗口)中两个变量的值。我还有一个新游戏按钮,如果可能的话,我应该从我的其他形式调用一个方法(基本上,我在我的游戏形式中制作了一个"初始化()"方法。 d当我点击另一个表格上的" New Game"按钮时,它会被启动。

我只找到了教程,展示了如何从一种形式到另一种形式(如标签文本)做非常基本的事情,但我没有找到我特定问题的答案。

我在主窗体中使用它来实例化菜单表单

public FormMenu myMenu;
myMenu = new FormMenu();

我想做的是我可以用另一种形式做这样的事情:

amountOfRows = Int32.Parse(myMenu.comboBoxRows.Text);
amountOfColumns = Int32.Parse(myMenu.comboBoxColumns.Text);

知道我该怎么做吗?

2 个答案:

答案 0 :(得分:0)

我很想看到一些示例代码,所以我可以帮助看看你的困惑在哪里。 WinForms需要实例化其他表单。

OtherForm form = new OtherForm();

表单实例化后,您应该可以从中运行代码。

编辑:

根据您的实现,我建议在FormMenu中使用返回这些int值的公共方法。

public int ReturnRows()
{
    return Int32.Parse(myMenu.comboBoxRows.Text);
}

public int ReturnColumns()
{
    return Int32.Parse(myMenu.comboBoxColumns.Text);
}

然后从myMenu实例化的另一种形式,你可以调用myMenu.ReturnRows()和myMenu.ReturnColumns()

答案 1 :(得分:0)

最简单的方法是将表单的引用作为变量存储在menue中。 (您已将其命名为var data = { somekey1: "someval1", somekey2: "someval2", mystringkey1: "someval", mystringkey2: "someval" } var filtered = {} for (key in data) { if (key.match(/^mystring/)) filtered[key] = data[key]; } console.log(filtered)

然后,您应该在表单中创建所需的属性/属性,为值添加setter。 (参见示例here

最后,您使用

更新表单字段
myMenu

这就是它的全部