So che questa è probabilmente una domanda molto nuova, quindi mi scuso.Un riferimento a un oggetto è richiesto per il campo, il metodo o la proprietà non statici?
Sto tentando di accedere alla proprietà Text di un'etichetta su Form1 da un altro modulo, MaxScore.
Quando faccio clic sul pulsante OK su MaxScore, desidero impostare Form1's myGameCountLbl.Text sulla variabile di Form1, max utilizzando max.ToString().
Ecco il mio codice in caso pulsante OK di MaxScore:
private void okBtn_Click(object sender, EventArgs e)
{
Form1.myGameCountLbl.Text = Form1.max.ToString();
Form1.compGameCountLbl.Text = Form1.max.ToString();
}
Ma quando vado a compilarlo, ottengo l'errore:
An object reference is required for the non-static field, method, or property 'Towergame_2.Form1.myGameCountLbl'
ottengo lo stesso errore per Towergame_2 .Form1.max e Towergame_2.Form1.compGameCountLbl.
Non so bene come risolvere questo problema. Max è una variabile pubblica e le due etichette sono anche pubbliche.
Grazie!
Questo è il codice nel mio costruttore (Grazie lassevk per il codice!):
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();
}
Quando aggiungo tutto questo e provo a compilare ed eseguire, premere ok sul pulsante MaxScore, ottengo un'eccezione su: MainForm.myGameCountLbl.Text = MainForm.max.ToString(); dicendo: NullReferenceException non è stato gestito. Il riferimento non impostato su un'istanza di un oggetto. – Eric
In realtà hai impostato MainForm, come ho mostrato nell'ultimo pezzo di codice? –
Sì, l'ho fatto. Ho l'ultimo pezzo di codice nel mio costruttore di Form1. – Eric