2008-12-18 10 views
5

सी #: आप कंबोबॉक्स जैसे आइटम्स की सूची को .NET सेटिंग्स फ़ाइल में कैसे सहेजते हैं?सी #: आप कंबोबॉक्स जैसे आइटम्स की सूची को .NET सेटिंग्स फ़ाइल में कैसे सहेजते हैं?

+0

क्या आपका मतलब App.Config है? –

उत्तर

4

आप आवेदन उपयोगकर्ता सेटिंग के बारे में बात कर रहे हैं, मैं बता गया के माध्यम से लूप चाहते है और एक सीमांकित स्ट्रिंग में मूल्यों को बचाने:

StringBuilder sb = new StringBuilder(); 
foreach(var item in combo.Items){ 
    sb.Append(item.ToString() + ";"); 
} 
Properties.Settings.MyListSetting = sb.ToString(); 

करें यदि उपरोक्त कोड सही नहीं है बहाना, यह सिर्फ है एक उदाहरण।

आशा है कि मदद करता है!

8

सेटिंग्स डिज़ाइनर का उपयोग करने का एकमात्र संग्रह प्रकार सिस्टम है। चयन। आरेलेलिस्ट। यदि आप एक ऐरेलिस्ट का उपयोग करते हैं, तो इसके सभी तत्वों के प्रकार क्रमबद्ध होना चाहिए ([सीरियलज़ेबल] विशेषता या सिस्टम को कार्यान्वित करना चाहिए। रनटाइम। सिराइलाइजेशन.इसेरियलज़ेबल।)

यहां कुछ कोड है जो एक ArrayList से डेटा प्राप्त करने के लिए है (नाम cboCollection) एक कॉम्बो बॉक्स और पीछे में सेटिंग्स में।

private void Form1_Load(object sender, EventArgs e) 
    { 
     if (Settings.Default.cboCollection != null) 
      this.comboBox1.Items.AddRange(Settings.Default.cboCollection.ToArray()); 
    } 


    private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     ArrayList arraylist = new ArrayList(this.comboBox1.Items); 
     Settings.Default.cboCollection = arraylist; 
     Settings.Default.Save(); 
    } 

    //A button to add items to the ComboBox 
    private int i; 
    private void button1_Click(object sender, EventArgs e) 
    { 
     this.comboBox1.Items.Add(i++); 
    } 
1

विंडोज फॉर्म ऑब्जेक्ट्स क्रमबद्ध नहीं हैं। इसलिए आप उन्हें एक फ़ाइल में serialize और स्टोर नहीं कर सकते हैं एक बाइनरीफॉर्मर के साथ। आपको फ़ाइल में मैन्युअल रूप से combobox मानों को स्टोर करने की आवश्यकता है।

string comboboxFileName = @"c:\workDir\settings.settings"; 

private void saveComboboxInFile (String comboboxFileName) 
{ 
    //-------------------------------------------------------- 
    //- Store the combobox values in a file. 1 value = 1 line 
    //-------------------------------------------------------- 
    try 
    { 
     using (StreamWriter comboboxsw = new StreamWriter(comboboxFileName)) 
     { 
      foreach (var cfgitem in comboBox.Items) 
      { 
       comboboxsw.WriteLine(cfgitem); 
      } 
     } // End Using` 
    } 
    catch (Exception e) 
    { 
     //process exception 
    } 
} 



private void reloadCombboxFromFile (string comboboxFileName) 
    { 
    //------------------------------------------------- 
    //- Read the values back into the combobox 
    //------------------------------------------------- 
     try 
     { 
      using (StreamReader comboboxsr = new StreamReader(comboboxFileName)) 
      { 
       while (!comboboxsr.EndOfStream) 
       { 
         string itemread = comboboxsr.ReadLine(); 
         comboBox.Items.Add(itemread); 
       } 
      } // End Using 
     } 
     catch (DirectoryNotFoundException dnf) 
     { 
     // Exception Processing 
     } 
     catch (FileNotFoundException fnf) 
     { 
     // Exception Processing 
     } 
     catch (Exception e) 
     { 
     // Exception Processing 
     } 
    } 
संबंधित मुद्दे