C# 希望从一个表单获取数据,将其用作另一个表单中的变量

C# 希望从一个表单获取数据,将其用作另一个表单中的变量,c#,forms,winforms,visual-studio-2012,C#,Forms,Winforms,Visual Studio 2012,我几乎完成了使用WinForms与VS2012的Connect4游戏。一切都很好,但我想为用户提供一个专用的开始菜单窗口的选项。在该菜单上,我有两个组合框,我需要从中获取文本,将它们用作另一种形式(游戏窗口)中两个变量的值。我还有一个新的游戏按钮,如果可能的话,它应该从我的另一个窗体调用一个方法(基本上,我在游戏窗体中创建了一个“Initialization()”方法,我希望在单击另一个窗体上的“newgame”按钮时启动它) 我只找到了一些教程,展示了如何从一种形式到另一种形式做一些非常基本的

我几乎完成了使用WinForms与VS2012的Connect4游戏。一切都很好,但我想为用户提供一个专用的开始菜单窗口的选项。在该菜单上,我有两个组合框,我需要从中获取文本,将它们用作另一种形式(游戏窗口)中两个变量的值。我还有一个新的游戏按钮,如果可能的话,它应该从我的另一个窗体调用一个方法(基本上,我在游戏窗体中创建了一个“Initialization()”方法,我希望在单击另一个窗体上的“newgame”按钮时启动它)

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

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

public FormMenu myMenu;
myMenu = new FormMenu();
我想做的是,我可以用另一种形式做类似的事情:

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

你知道我该怎么做吗?

我很想看一些示例代码,这样我就可以帮助你了解你的困惑所在。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()

最简单的方法是将对表单的引用作为变量存储在菜单中。(您已经将其命名为
myMenu

然后,您应该以添加值设置器的形式创建所需的属性。(见示例)

上次使用更新表单字段时

myMenu.property = newvalue;

就这些

嗨,@Morgoth。首先,欢迎来到StackOverflow。。。请注意,通常问题都应该附带一些代码。现在不可能提出一个好的方法,因为我们不知道您的代码是什么样子的。有许多解决方案,最简单的解决方案是在一个类中使用静态变量,这两种形式都可以访问。thx是您的答案。我在我的原始帖子中添加了一些代码,以便更具体地说明我想要做什么。你可以访问FormMenu的公共成员,只要它在范围内。这比在父类中使用静态变量要复杂一点,但要好一点。formMenuInstance.someMember将为您提供会员资格同样,提出好问题的一部分是能够将其分解为最简单的模块。。。这是你应该做的,所以问题。。。只要做一个最简单的例子,把你的问题复制到这里就可以了。好的,我会记住这一点,我是新来的,所以我真的不知道它是怎么工作的。谢谢你的帮助。很抱歉没有立即添加代码。事实上,因为我不知道怎么做,所以我没有太多与这个特定问题相关的代码。我已经在我的游戏表单(我的主表单)中实例化了菜单表单,但是从那里我真的不知道如何做我想做的事情(我在第一篇文章中解释过)。我用我用来实例化的短代码编辑了我的第一篇文章。谢谢,你在编辑部分的方法工作得很好!