मुझे पता है कि यह शायद एक बहुत ही नया सवाल है, इसलिए मैं क्षमा चाहता हूं।गैर स्थैतिक क्षेत्र, विधि या संपत्ति के लिए एक ऑब्जेक्ट संदर्भ आवश्यक है?
मैं फॉर्म 1 पर किसी अन्य फॉर्म, मैक्सस्कोर से किसी लेबल की टेक्स्ट प्रॉपर्टी तक पहुंचने का प्रयास कर रहा हूं।
जब मै मैक्सस्कोर पर ओके बटन पर क्लिक करता हूं, तो मैं फॉर्म 1 के myGameCountLbl.Text को फॉर्म 1 के चर पर सेट करना चाहता हूं, max.oString() का उपयोग करके अधिकतम।
An object reference is required for the non-static field, method, or property 'Towergame_2.Form1.myGameCountLbl'
मैं Towergame_2 के लिए एक ही त्रुटि मिलती है: जब मैं यह संकलन में जाओ, मैं त्रुटि मिलती है
private void okBtn_Click(object sender, EventArgs e)
{
Form1.myGameCountLbl.Text = Form1.max.ToString();
Form1.compGameCountLbl.Text = Form1.max.ToString();
}
लेकिन:
यहाँ MaxScore के ठीक बटन स्थिति में मेरी कोड है .Form1.max और Towergame_2.Form1.compGameCountLbl।
यह सुनिश्चित नहीं है कि इसे कैसे ठीक किया जाए। मैक्स एक सार्वजनिक चर है और दो लेबल भी जघन्य हैं।
धन्यवाद!
यह मेरा निर्माता में कोड है (धन्यवाद आप कोड के लिए 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();
}
जब मैं यह सब जोड़ता हूं और संकलन और चलाने की कोशिश करता हूं, तो मैक्सस्कोर बटन पर ठीक दबाएं, मुझे एक अपवाद मिलता है: MainForm.myGameCountLbl.Text = MainForm.max.ToString(); कह रहा है: NullReferenceException को अनचाहे किया गया था। वस्तु का संदर्भ वस्तु की आवृत्ति अनुसार सेट नहीं. है। – Eric
क्या आपने वास्तव में मेनफॉर्म सेट किया था, जैसा कि मैंने कोड के अंतिम भाग में दिखाया था? –
हां मैंने किया। मेरे फॉर्म 1 कन्स्ट्रक्टर में मेरे पास कोड का आखिरी टुकड़ा है। – Eric