【发布时间】:2015-04-19 11:37:49
【问题描述】:
我有问题。我正在用 c# Win Forms 做乒乓球游戏。我创建了 Form1 是实际游戏,Form2 是菜单,Form3 是选项窗口。我的问题是如何从 Form3 访问面板(我在游戏中的背景)属性,这是选项。
【问题讨论】:
-
你应该为你的表格命名。
我有问题。我正在用 c# Win Forms 做乒乓球游戏。我创建了 Form1 是实际游戏,Form2 是菜单,Form3 是选项窗口。我的问题是如何从 Form3 访问面板(我在游戏中的背景)属性,这是选项。
【问题讨论】:
我想到的第一个问题是——为什么需要 3 种不同的表单(窗口或对话框)。只有一个表格,然后根据你在游戏中的位置来切换它的内容不是更好吗?
例如,您可以添加 3 个带有游戏、菜单和选项的不同面板,并仅将当前活动的面板设置为可见。或者使用菜单作为实际游戏的覆盖(如果您想在游戏期间访问它)。 那么你就只有一个Form,可以把所有的游戏逻辑都放进去。
但如果你真的想使用 3 种不同的表单,那么我建议使用一种表单(或任何其他类)作为可以访问所有其他表单、窗口、游戏数据的主程序逻辑类。 因此,您可以将不同表单的引用保存在一个地方,并且可以轻松访问它们。
为了获得这个主程序逻辑类的反向链接,只需将它提供给其他形式,无论是在构造函数中,还是作为您在创建后设置的属性。 您还可以使用单例模式,并创建这个主类的单个静态实例,并具有公共静态访问权限,因此所有其他类都可以通过静态 getter 简单地访问它。
你看,有无数的选择。一切都取决于您的个人喜好,以及您的具体需求。
【讨论】: