我几乎完成了使用WinForms与VS2012进行Connect4游戏。一切都运行良好,但我想在专用的“开始菜单”窗口中为用户提供选项。在那个菜单上,我有两个组合框,我需要从文本中将它们用作另一个形式(游戏窗口)中两个变量的值。我还有一个新游戏按钮,如果可能的话,我应该从我的其他形式调用一个方法(基本上,我在我的游戏形式中制作了一个"初始化()"方法。 d当我点击另一个表格上的" New Game"按钮时,它会被启动。
我只找到了教程,展示了如何从一种形式到另一种形式(如标签文本)做非常基本的事情,但我没有找到我特定问题的答案。
我在主窗体中使用它来实例化菜单表单
public FormMenu myMenu;
myMenu = new FormMenu();
我想做的是我可以用另一种形式做这样的事情:
amountOfRows = Int32.Parse(myMenu.comboBoxRows.Text);
amountOfColumns = Int32.Parse(myMenu.comboBoxColumns.Text);
知道我该怎么做吗?
答案 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
这就是它的全部