【问题标题】:Getting Acces from Form2 into Form1 object properties获取从 Form2 到 Form1 对象属性的访问权限
【发布时间】:2015-04-19 11:37:49
【问题描述】:

我有问题。我正在用 c# Win Forms 做乒乓球游戏。我创建了 Form1 是实际游戏,Form2 是菜单,Form3 是选项窗口。我的问题是如何从 Form3 访问面板(我在游戏中的背景)属性,这是选项。

【问题讨论】:

标签: c# .net windows forms


【解决方案1】:

我想到的第一个问题是——为什么需要 3 种不同的表单(窗口或对话框)。只有一个表格,然后根据你在游戏中的位置来切换它的内容不是更好吗?

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

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

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

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

【讨论】:

  • 我现在有另一个问题。我设置了“C”键来打开游戏菜单,并且我设置了 timer1.Enabled = false。在菜单中,我有按钮 Resume,然后 timer1.Enabled 变为 true。我的问题是,当我按一次 C 并重新开始播放时,我无法使用我之前设置的键( Esc 用于退出和 Space 用于重新启动)。有任何想法吗?我是初学者,所以我不知道这么简单的事情;d
  • 是的,我看你是初学者。我建议您遵循一些基本教程,以便您习惯编程概念。如果您有具体问题,请打开另一个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-07
相关资源
最近更新 更多