2011-03-08 22 views
6

VB.NET में "स्वतः बाहर निकलने पर सेटिंग्स सहेजने" के लिए एक विकल्प है वहाँ सी # में एक समान विकल्प है या निम्न कोड लिखने के लिए एक की जरूरत है? "स्वचालित रूप से बाहर निकलने पर सी # सेटिंग्स सहेजने

private void frmMain_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    Properties.Settings.Default.Save(); 
} 

उत्तर

14

आप ApplicationExit बजाय इस्तेमाल कर सकते हैं।

Settings.Default.PropertyChanged += new PropertyChangedEventHandler(Default_PropertyChanged); 

void Default_PropertyChanged(object sender, PropertyChangedEventArgs e) 
{ 
    Settings.Default.Save(); 
} 

चेतावनी::

Application.ApplicationExit += new EventHandler(Application_ApplicationExit); 

void Application_ApplicationExit(object sender, EventArgs e) 
{ 
    Settings.Default.Save(); 
} 

या फिर, आप हर बदलाव पर बचा सकता है आप दूसरा तरीका अपनाते हैं, @Hans द्वारा टिप्पणियों पर विचार कृपया Passant

+0

मुझे लगता है कि प्रत्येक परिवर्तन पर गुणों को सहेजने से उपयोगकर्ता थोड़ा अजीब बातचीत करता है, खासकर यदि आप उन्हें अपनी बातचीत रद्द करने की अनुमति देते हैं। जब उपयोगकर्ता किसी फॉर्म को बंद करता है, तो सहेजता है, कुछ सबसिस्टम लोड करता है, एक बेहतर समग्र अनुभव प्रदान करता है। –

+0

आपकी मदद के लिए धन्यवाद ... पीएस: रिच के साथ सहमत होने के इच्छुक हैं लेकिन मुझे आवेदन पसंद है बेहतर बेहतर करें। –

+2

PropertyChanged खतरनाक है। यदि कार्यक्रम बाद में मर जाता है, तो सहेजी गई सेटिंग के कारण स्टार्टअप पर फिर से मर सकता है। आप उपयोगकर्ता इसे फिर से शुरू नहीं कर सकते हैं, फ़ाइल को खोजने में बहुत मुश्किल है। –

-2

इस article यह बिल्कुल वैसा ही

+0

... इसे छोड़कर नहीं। मूल प्रश्न पूछा गया कि बाहर निकलने पर सेटिंग्स को स्वचालित रूप से कैसे सहेजना है। –

0

हाँ, बस इतना ही है के अनुसार। मैं, बचाने रीसेट, प्रपत्र स्तर पर फिर से लोड क्योंकि सेटिंग ऐप में साझा कर रहे संभालने के लिए पसंद करते हैं। कॉलिंग .Reset() FormCancel पर सही काम करता है उपयोगकर्ता के लिए, साथ ही साथ कॉल करना। सेव() जब फॉर्म बंद हो जाता है। यदि ऐप उस बिंदु के बाद दुर्घटनाग्रस्त हो जाता है, तो सेटिंग्स संरक्षित होती हैं। मुझे लगता है कि ऐप पर बचत प्रारंभ/निकास सही समय पर उपयोगकर्ता के लिए सही काम नहीं करता है।

Settings.Default.Save(); 

अन्य रोचक तरीके:

.Upgrade(); 

.Reset(); 

.Reload(); 
1

आप इसे ऐसा कर सकते हैं रास्ता भी। यदि आप विंडोज फॉर्म का उपयोग कर रहे हैं, तो फॉर्म के लिए डिज़ाइन-व्यू में प्रॉपर्टी फलक के भीतर से ईवेंट टैब को उस फॉर्म के लिए लाएं, जिसे आप उपयोग करना चाहते हैं, और जब तक आप समापन ईवेंट नहीं देखते हैं तब तक नीचे स्क्रॉल करें, फिर इसे डबल-क्लिक करें।

अगला, बस नीचे दिखाए गए कोड को जोड़ें।

private void Form1_Closing(object sender, EventArgs e) 
{ 
    Properties.Settings.Default.Save(); 
} 
संबंधित मुद्दे