在另一个类中更改对象的属性
本文关键字:对象 属性 另一个 | 更新日期: 2023-09-27 18:17:41
我正在尝试从另一个类更改对象的属性,如:
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(形式)
<>之前private void btnAbility1_Click(对象发送者,EventArgs e){abilities.hideAllButtons ();btnAbilities。Enabled = false;}之前我已经尝试了所有我的知识和理解,并在互联网上查找了很多。我试过使对象静态,公共,在类中创建对象。但什么都没用。通常我得到StackOverFlow错误。
我对OOP也很陌生,但我不是白痴,所以不要认为对我太"轻率"地解决我的问题,或者导致我的问题-如果你理解,那就是。
方法hideAllButtons
是静态的,所以应该有一个Form参数。
public static void hideAllButtons(frmFight fight)
{
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; // What about this???
}
并在点击处理程序中调用这个方法,
hideAllButtons(this);
这真的不起作用,因为你的控件是在你的frmFight。
你需要做的是放置
private void hideAllButtons()
{
btnAbility1.Visible = false;
btnAbility2.Visible = false;
btnAbility3.Visible = false;
btnAbility4.Visible = false;
btnAbility5.Visible = false;
btnAbility6.Visible = false;
vars.buttonsVisible = false;
}
在你的frmFight.cs (form)作为私有方法,只是调用你的按钮点击,使它更简单。
private void btnAbility1_Click(object sender, EventArgs e)
{
hideAllButtons();
btnAbilities.Enabled = false;
}
对