Я пытаюсь изменить свойства объекта из другого класса, например.Изменение свойств объекта в другом классе?
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(object sender, EventArgs e) { abilities.hideAllButtons(); btnAbilities.Enabled = false; }
Я пробовал все, что в моих знаниях и понимании, и много глядя в Интернете. Я попытался сделать объекты статичными, общедоступными, создав объект внутри класса. Но ничего не работает. Обычно я получаю ошибки StackOverFlow.
Я тоже очень новичок в ООП, но я не идиот, поэтому не думайте, чтобы я слишком «слегка» относился ко мне с возможным исправлением или причиной моей проблемы - если вы понимаете, то есть.
Привет Брайан. Можете ли вы объяснить, почему вы создаете новый экземпляр frmFight в hideAllButtons()? – SquidScareMe
Эй. Да, объекты btnAbilityX были сделаны в форме frmFight. Разве я не должен создавать новый экземпляр из них в классе способностей, для которого они должны быть представлены? – Brian
, в этом случае нет необходимости создавать новый экземпляр frmFight. Я вижу пару хороших решений ниже, поэтому я не буду публиковать ответ. Удачи в ООП! – SquidScareMe