私はこれがおそらく非常に新鮮な質問であることを知っているので、私は謝罪します。非静的なフィールド、メソッド、またはプロパティにはオブジェクト参照が必要ですか?
別のフォーム、MaxScoreからForm1のラベルのTextプロパティにアクセスしようとしています。
MaxScoreの[OK]ボタンをクリックすると、max.ToString()を使用して、Form1の変数maxにForm1のmyGameCountLbl.Textを設定します。
private void okBtn_Click(object sender, EventArgs e)
{
Form1.myGameCountLbl.Text = Form1.max.ToString();
Form1.compGameCountLbl.Text = Form1.max.ToString();
}
しかし、私はそれをコンパイルするために行くとき、私はエラーを取得する:ここで
はMaxScoreのOKボタンイベントで私のコードです
An object reference is required for the non-static field, method, or property 'Towergame_2.Form1.myGameCountLbl'
私はTowergame_2に同じエラーが出ます.Form1.maxとTowergame_2.Form1.compGameCountLbl。
これをどのように修正するかわかりません。 Maxは公開変数であり、2つのラベルも陰性です。
ありがとうございます!
これは私のコンストラクタ内のコードである(あなたがコードをlassevk感謝!):
public Form1()
{
//initialize vars
myHp = 100;
compHp = 100;
youWon = 0;
compWon = 0;
money = 100;
canCompAttack = true;
gameOver = false;
//show HowToPlay Dialogue
HowToPlay howToPlay = new HowToPlay();
howToPlay.ShowDialog();
using (MaxScore maxScore = new MaxScore())
{
maxScore.MainForm = this;
maxScore.ShowDialog();
}
InitializeComponent();
}
これをすべて追加してコンパイルして実行しようとすると、MaxScoreボタンでokを押すと、次の例外が発生します。 MainForm.myGameCountLbl.Text = MainForm.max.ToString(); say:NullReferenceExceptionが処理されませんでした。オブジェクト参照がオブジェクト インスタンスに設定されていません。 – Eric
MainFormを実際に設定しましたか?最後のコードに示しましたが? –
はい、私はしました。私はForm1のコンストラクタでコードの最後の部分を持っています。 – Eric