【发布时间】:2011-12-14 03:24:07
【问题描述】:
我正在尝试从另一个类更改对象的属性,就像这样。
abilities.cs(类)
public static void hideAllButtons()
{
frmFight fight = new frmFight();
fight.btnAbility1.Visible = false;
fight.btnAbility2.Visible = false;
fight.btnAbility3.Visible = false;
fight.btnAbility4.Visible = false;
fight.btnAbility5.Visible = false;
fight.btnAbility6.Visible = false;
vars.buttonsVisible = false;
}
我正在尝试使用上一个类中的方法来更改以下表单中的对象属性;
frmFight.cs(表格)
私人无效btnAbility1_Click(对象发送者,EventArgs e) { 能力.hideAllButtons(); btnAbilities.Enabled = 假; }在我的知识和理解范围内,我已经尝试了一切,并在互联网上进行了大量查找。我尝试使对象成为静态的、公共的,在类中创建对象。但没有任何效果。通常我会收到 StackOverFlow 错误。
我对 OOP 也很陌生,但我不是白痴,所以不要以为我的问题可能会解决或导致我的问题太“轻率” - 如果你明白,那是。
【问题讨论】:
-
嗨,布莱恩。你能解释一下为什么要在 hideAllButtons() 中实例化一个新的 frmFight 实例吗?
-
嘿。是的,btnAbilityX 对象是在 frmFight 表单上制作的。所以我不必在能力类中创建它们的新实例以供参考吗?
-
在这种情况下,无需创建新的 frmFight 实例。我在下面看到了几个很好的解决方案,所以我不会发布答案。祝你在 OOP 中好运!
-
谢谢!第一个问题,快速响应。谢谢:)
标签: c# visual-studio-2010 oop stack-overflow