从Form2访问Form1对象属性

时间:2015-04-19 11:37:49

标签: c# .net windows forms

我有问题。我正在使用c#Win Forms进行Pong游戏。我创建了Form1,它是实际游戏,Form2是Menu,Form3是Options Window。我的问题是如何从Form3访问面板(我的游戏背景)属性,即Options。

1 个答案:

答案 0 :(得分:0)

我想到的第一个问题是 - 为什么你需要3种不同的形式(窗口或对话框)。如果只有一个表单,并根据您在游戏中的位置切换内容,那不是更好吗?

例如,您可以使用游戏,菜单和选项添加3个不同的面板,并仅将当前活动的面板设置为可见。或者使用菜单作为实际游戏的叠加(如果您想在游戏中访问它)。 那么你只有一个Form,可以将所有游戏逻辑放入其中。

但是如果你真的想要使用3种不同的形式,那么我建议使用一种形式(或任何其他类)作为主程序逻辑类,它可以访问所有其他形式,窗口,游戏数据。 因此,您可以在一个位置保存对不同表单的引用,并且可以轻松访问它们。

为了获得这个主程序逻辑类的反向链接,只需将它提供给构造函数中的其他表单,或者作为创建后设置的属性。 您还可以使用单例模式,并使用公共静态访问创建此主类的单个静态实例,因此所有其他类只需通过静态getter访问它。

你看,有无数的选择。一切都取决于您的个人喜好以及您的具体需求。