2010-10-12 14 views
5

मेरे पास DialogResultOK की संपत्ति के साथ, मेरे फॉर्म पर btnOK बटन है। फॉर्म की AcceptButton संपत्ति btnOK पर सेट है। तो अगर मैं बटन पर क्लिक करता हूं, तो फॉर्म स्वचालित रूप से बंद हो जाता है।सी #: किसी बटन पर स्वीकृति या रद्द करें बटन के रूप में सेट किए गए बटन के लिए घनिष्ठ कार्रवाई को कैसे रद्द करें?

अब btnOK_Click() विधि के अंदर, मैं नज़दीकी कार्रवाई से रद्द करने की क्षमता चाहता हूं, उदा। अगर कोई त्रुटि हुई तो मैं एक संदेश बॉक्स दिखाना चाहता हूं और फॉर्म को बंद नहीं करना चाहता हूं।

मैं इसे कैसे कर सकता हूं?

उत्तर

6

IMO आप सिर्फ बटन पर DialogResult गुण सेट करने की जरूरत नहीं है, लेकिन यह सीधे btnOK_Click घटना में सेट अपने फार्म पर:

private void btnOK_Click(object sender, EventArgs e) 
{ 
    if (yeahLetsClose) 
     this.DialogResult = DialogResult.OK; // form will close with OK result 
    // else --> form won't close... 
} 

Btw, AcceptButton संपत्ति कुंजी दर्ज करने से संबंधित है (जब आप इसे अपने फॉर्म पर दबाएं, AcceptButton दबाया जाएगा)

1

फॉर्म बंद ईवेंट के लिए एक ईवेंट हैंडलर जोड़ें। EventArgs पैरामीटर में एक रद्द संपत्ति होनी चाहिए।

+0

कि काम करेंगे, लेकिन यह kludgy है - क्लिक करें घटना, जिसे फिर आप समापन समारोह में पढ़ा में एक ध्वज की स्थापना की आवश्यकता है। अगर यह एकमात्र तरीका है, ठीक है - लेकिन मैं कुछ कम कामकाज की तलाश में था ... –

+0

यह है कि आपके बटन कैसे काम करते हैं या बदलते हैं ताकि आपकी प्रसंस्करण या तो मैन्युअल रूप से बंद हो या बंद न हो, और भरोसा न करें AcceptButton स्वचालित सामान। – asawyer

8

त्रुटि जोड़ने पर:

this.DialogResult = DialogResult.None 
संबंधित मुद्दे