【问题标题】:Want to take data from one form to use them as variable in an other想要从一种形式中获取数据以将它们用作另一种形式的变量
【发布时间】:2016-01-17 23:01:50
【问题描述】:

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

我只找到了展示如何从一种形式到另一种形式的非常基本的事情的教程(例如标记文本),但我没有找到针对我的具体问题的答案。

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

public FormMenu myMenu;
myMenu = new FormMenu();

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

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

知道我该怎么做吗?

【问题讨论】:

  • 嗨,@Morgoth。首先,欢迎来到 StackOverflow... 请注意,通常问题应该总是附有一些代码。现在不可能提出一个好的方法,因为我们不知道你的代码是什么样的。有许多解决方案,最简单的方法是在一个类中使用两种形式都可以访问的静态变量。
  • 感谢您的回答。我在原始帖子中添加了一些代码,以更具体地说明我想要做什么。
  • 您可以访问您的 FormMenu 的公共成员,只要它在范围内。这比在父类中使用静态变量要复杂一些,但要好一些。 formMenuInstance.someMember 会给你会员
  • 另外,提出好的问题的一部分是能够将其分解为最简单的块......这就是你应该用 SO 问题做的......只需做一个复制你的问题的最简单的例子在这里发帖。
  • 好的,我会记住这一点,我是新来的,所以我真的不知道它是如何工作的。感谢您的帮助。

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


【解决方案1】:

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

【讨论】:

  • 很抱歉没有立即添加代码。事实上,因为我真的不知道该怎么做,所以我没有很多与这个特定问题相关的代码。我已经在我的游戏表单(我的主表单)中实例化了菜单表单,但是从那里我真的不知道如何做我想做的事情(我在第一篇文章中解释过)。我用我用来实例化的短代码编辑了我的第一篇文章。
  • 谢谢,您在编辑部分的方法很有效!
【解决方案2】:

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

然后您应该在表单中创建您需要的属性,并为这些值添加一个设置器。 (参见示例here

最后你用

更新表单域
myMenu.property = newvalue;

就是这样

【讨论】:

    猜你喜欢
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多