2011-05-03 9 views
16

मैं निम्नलिखित कोड है:सी # कैसे मान बदलने Properties.Settings.Default.Properties लूप करने के लिए

foreach (SettingsProperty currentProperty in Properties.Settings.Default.Properties) 
{ 
    if (Double.TryParse(GenerateValue()), out result)) 
    { 
     currentProperty.DefaultValue = result.ToString(); 

     Properties.Settings.Default.Save(); 
    } 
} 

यह एक mysql डेटाबेस से नया मान हो जाता है। अगर मैं एक संदेशबॉक्स जोड़ता हूं। नया मान दिखाने के लिए दिखाएं यह ठीक काम करता प्रतीत होता है लेकिन यह वास्तव में इसे सहेजता नहीं है। मुझे लगता है कि ऐसा इसलिए है क्योंकि मैं एक चर के लिए मान असाइन कर रहा हूं ... क्या ऐसा करने का कोई तरीका है?

Properties.Settings.Default.IndexOf(currentProperty.name).DefaultValue = result 

उत्तर

21

यह काम हो सकता है:

foreach (SettingsProperty currentProperty in Properties.Settings.Default.Properties) 
{ 
    Properties.Settings.Default[currentProperty.Name] = result.ToString(); 
    Properties.Settings.Default.Save(); 
} 

ध्यान रखें कि गुण सहेजने के लिए में गुंजाइश 'उपयोगकर्ता' होना चाहिए।

+0

मुझे पता था कि ऐसा करने का कोई तरीका होना चाहिए था। आपकी सहायता के लिए धन्यवाद। मेरे पास सब कुछ पहले से ही उपयोगकर्ता के लिए सेट किया गया था। – Brandon

+0

[एलेक्स अज़ाबुत] मुझे सेटिंग का दायरा कैसे मिल सकता है? – gg89

+0

मुझे संदेह है कि मैं इसका उपयोग कर सकता हूं! सेटिंग। केवल उपयोगकर्ता के दायरे के रूप में पढ़ें, है ना? – gg89

2

मैं आपके निष्कर्ष से सहमत हूं। आपको क्या करना है स्ट्रिंग वैल्यू द्वारा संपत्ति प्राप्त करें।

Properties.Settings.Default[string value] = 

    foreach (SettingsProperty currentProperty in Properties.Settings.Default.Properties) 
    {  
    if (Double.TryParse(GenerateValue()), out result)) 
     {   

Properties.Settings.Default[ currentProperty.Name ] = result.ToString(); 
      Properties.Settings.Default.Save(); 
     } 
    } 

उपरोक्त वही है जो आप वास्तव में चाहते हैं।

+0

भी आपको धन्यवाद। – Brandon

+0

मेरा जवाब वास्तव में संकलित होगा। * सुझाव ** संकेत ** सुझाव * –

संबंधित मुद्दे