आप WinForms के लिए पूछ रहे हैं, मान लें कि आप FormClosing () घटना का उपयोग कर सकते हैं । फॉर्म को बंद करने के लिए फॉर्म क्लोजिंग () किसी भी समय चालू हो जाता है।
यह पता लगाने के लिए कि उपयोगकर्ता ने X या आपके CloseButton पर क्लिक किया है, आप इसे प्रेषक ऑब्जेक्ट के माध्यम से प्राप्त कर सकते हैं। एक बटन नियंत्रण के रूप में प्रेषक को कास्ट करने की कोशिश करें, और उदाहरण के लिए, इसके नाम "क्लोज़बटन" के लिए संभवतः सत्यापित करें।
private void Form1_FormClosing(object sender, FormClosingEventArgs e) {
if (string.Equals((sender as Button).Name, @"CloseButton"))
// Do something proper to CloseButton.
else
// Then assume that X has been clicked and act accordingly.
}
अन्यथा, मुझे कभी यह अंतर करने की आवश्यकता नहीं है कि क्या X या CloseButton को क्लिक किया गया था, क्योंकि मैं MDClontainerForm को बंद करने से पहले सभी MdiChildren को बंद करने, या बिना सहेजे गए परिवर्तनों की जाँच करने के लिए, FormClosing इवेंट पर कुछ विशिष्ट प्रदर्शन करना चाहता था। इन परिस्थितियों में, मुझे, मेरे अनुसार, दोनों बटन से अंतर करने की आवश्यकता नहीं है।
ALT+ F4से बंद होने से FormClosing () ईवेंट को भी ट्रिगर किया जाएगा, क्योंकि यह फॉर्म को एक संदेश भेजता है जो बंद करने के लिए कहता है। आप ईवेंट को सेट करके रद्द कर सकते हैं
FormClosingEventArgs.Cancel = true.
हमारे उदाहरण में, यह अनुवाद होगा
e.Cancel = true.
FormClosing () और FormClosed () घटनाओं के बीच अंतर को नोटिस करें ।
फॉर्म क्लोजिंग तब होती है जब फॉर्म को बंद होने का संदेश प्राप्त होता है, और सत्यापित करें कि क्या बंद होने से पहले उसके पास कुछ करना है।
फॉर्म क्लोज्ड तब होता है जब फॉर्म वास्तव में बंद होता है, इसलिए इसे बंद करने के बाद।
क्या यह मदद करता है?