私はオブジェクトのプロパティを別のクラスから変更しようとしています。私は、以下のフォームでのオブジェクトのプロパティを変更するには、以前のクラスからメソッドを使用しようとしている別のクラスのオブジェクトのプロパティを変更しますか?
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;
}
。私は私の知識と理解、およびインターネット上で見上げるの多くにすべてを試みた
private void btnAbility1_Click(object sender, EventArgs e) { abilities.hideAllButtons(); btnAbilities.Enabled = false; }
frmFight.cs(フォーム)。私はオブジェクトを静的、パブリックにして、クラス内でオブジェクトを作成しようとしました。しかし、何も動作しません。通常、私はStackOverFlowエラーを取得します。
私もOOPの新人ですが、私はばかではありませんので、私の問題の可能性の修正、または原因で私に軽く行くとは思わない - あなたが理解すれば、あれは。
こんにちはブライアン、クリックハンドラでこのメソッドを呼び出します。 hideAllButtons()でfrmFightの新しいインスタンスをインスタンス化する理由を説明できますか? – SquidScareMe
ねえ。ええ、btnAbilityXオブジェクトはfrmFightフォームで作成されました。だから私は彼らのために彼らのために新たなインスタンスを作成しなければならないのですか? – Brian
の場合、frmFightの新しいインスタンスを作成する必要はありません。私は以下のいくつかの良い解決策を見るので、私は答えを投稿しません。 OOPで幸運を祈る! – SquidScareMe