संपादित करें: यह विधि वास्तव में बहुत अच्छा काम करती है और मैंने उससे पूछा कि बाद में समाधान मिला। मैं अतिभारित ShowDialog में सही कॉल() विधि जोड़ा (यह exacly एक अधिभार, या यहाँ तक कि एक ओवरराइड नहीं है, लेकिन यह सिर्फ एक ही काम करता है। मेरा नया सवाल तल पर एक है।क्या फॉर्म के लिए ShowDialog विधि को अधिभारित करना और एक अलग परिणाम लौटना संभव है?
मैं एक रूप है ।।
MyFormResults res = MyForm.ShowDialog();
मैं इस कोड के साथ एक नया ShowDialog विधि जोड़ सकते हैं: जिसमें आप तीन बटनों पर क्लिक करें मैं लौट आए परिणामों के लिए एक enum को परिभाषित किया है मैं कॉल करनी है
public new MyFormResults ShowDialog()
{
//Show modal dialog
base.ShowDialog(); //This works and somehow I missed this
return myResult; //Form level variable (read on)
}
जब मैं परिणाम के लिए एक फॉर्म-स्तरीय चर सेट करता हूं बटन क्लिक किया जाता है:
MyFormResults myResult;
private void btn1_click(object sender, EventArgs e)
{
myResult = MyFormsResults.Result1;
this.DialogResult = DialogResult.OK; //Do I need this for the original ShowDialog() call?
this.Close(); //Should I close the dialog here or in my new ShowDialog() function?
}
//Same as above for the other results
केवल एक चीज मैं याद कर रहा हूँ संवाद (मोडल) को दिखाने के लिए और फिर मेरी परिणाम वापसी कोड है। base.ShowDialog()
फ़ंक्शन नहीं है, तो मैं यह कैसे कर सकता हूं?
संपादित करें: एक 'base.ShowDialog()' है और यह काम करता है। यह मेरा नया प्रश्न यहां है:
साथ ही, यह सब करने का यह सबसे अच्छा तरीका है और क्यों?
धन्यवाद।
ठीक है, बहुत शर्मिंदा है, लेकिन एक "आधार है।ShowDialog() "और यह ठीक काम करता है। मैं" this.base.ShowDialog() "का प्रयास कर रहा था। यह पूरी तरह से काम करता है। –