C# 希望从一个表单获取数据,将其用作另一个表单中的变量
我几乎完成了使用WinForms与VS2012的Connect4游戏。一切都很好,但我想为用户提供一个专用的开始菜单窗口的选项。在该菜单上,我有两个组合框,我需要从中获取文本,将它们用作另一种形式(游戏窗口)中两个变量的值。我还有一个新的游戏按钮,如果可能的话,它应该从我的另一个窗体调用一个方法(基本上,我在游戏窗体中创建了一个“Initialization()”方法,我希望在单击另一个窗体上的“newgame”按钮时启动它) 我只找到了一些教程,展示了如何从一种形式到另一种形式做一些非常基本的事情(比如给文本贴标签),但我没有找到具体问题的答案 我在主窗体中使用它来实例化菜单窗体C# 希望从一个表单获取数据,将其用作另一个表单中的变量,c#,forms,winforms,visual-studio-2012,C#,Forms,Winforms,Visual Studio 2012,我几乎完成了使用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将为您提供会员资格同样,提出好问题的一部分是能够将其分解为最简单的模块。。。这是你应该做的,所以问题。。。只要做一个最简单的例子,把你的问题复制到这里就可以了。好的,我会记住这一点,我是新来的,所以我真的不知道它是怎么工作的。谢谢你的帮助。很抱歉没有立即添加代码。事实上,因为我不知道怎么做,所以我没有太多与这个特定问题相关的代码。我已经在我的游戏表单(我的主表单)中实例化了菜单表单,但是从那里我真的不知道如何做我想做的事情(我在第一篇文章中解释过)。我用我用来实例化的短代码编辑了我的第一篇文章。谢谢,你在编辑部分的方法工作得很好!