2015-07-10 27 views
1

我想保存我的ComboBox项目,以便在关闭窗口应用程序后,我恢复之前保存的ComboBox中的项目。我在类型的项目设置中声明组合框项目。我的代码如下。如何使用C#中的项目设置保存comboxitems

private void Form1_Load(object sender, EventArgs e) 
{ 
    comboBox1.Items.Add(Properties.Settings.Default.combox); 
} 

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

但它显示错误:

Cannot implicitly convert type 'System.Collections.ArrayList' to 'System.Collections.Specialized.StringCollection'

回答

0

将这个在您的Form1_FormClosing方法:

System.Collections.Specialized.StringCollection items = 
    new System.Collections.Specialized.StringCollection(); 
items.AddRange(this.comboBox1.Items.Cast<string>().ToArray()); 
Properties.Settings.Default.combox = items; 
1

从设置让您的项目,并检查他们是否。如果它们不为空,则将它们添加到您的ComboBox.Items集合中。

private void Form_Load(object sender, EventArgs e) 
{ 
    var comboboxItems = Properties.Settings.Default.ComboboxItems; 
    if (comboboxItems != null) 
     comboBox.Items.AddRange(comboboxItems.Cast<string>().ToArray()); 
} 

当窗体关闭,你需要把你里面的物品StringCollection格式,如果你愿意拯救他们。因此,将ComboBox.Items集合中的项目转换为字符串数组并将它们添加到StringCollection之内。把你的新鲜收藏品放入Settings.Default,重要的是,不要忘记保存更改。

private void Form_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    var comboboxItems = new StringCollection(); 
    comboboxItems.AddRange(comboBox.Items.Cast<string>().ToArray()); 
    Properties.Settings.Default.ComboboxItems = comboboxItems; 
    Properties.Settings.Default.Save(); 
}