保存文本框autocompletecustomesource

时间:2016-01-19 02:11:37

标签: c# winforms

所以,我有以下内容......

        textBox1.Text = Properties.Settings.Default.NetworkIP;
        AutoCompleteStringCollection sc = Properties.Settings.Default.IPList;
        textBox1.AutoCompleteCustomSource = sc;

和..

        private void textBox1_Click(object sender, EventArgs e)
    {
            if (!textBox1.AutoCompleteCustomSource.Contains(textBox1.Text))
                textBox1.AutoCompleteCustomSource.Add(textBox1.Text);
            textBox1.Text = textBox1.Text;
    }

和..

    private void textBox1_Leave(object sender, EventArgs e)
    {
        AutoCompleteStringCollection sc = Properties.Settings.Default.IPList;
        sc.Add(textBox1.Text);
        Properties.Settings.Default.IPList = sc;
        Properties.Settings.Default.NetworkIP = textBox1.Text;
        Properties.Settings.Default.Save();
    }

NetworkIP的保存/恢复工作正常。 拯救和恢复IPList工作正常。 小问题。 在编辑textBox1后按Enter或TAB仅在textBox1的内容中弹出,光标位于末尾。我必须在物理上点击下一个字段才能移动光标。

评论这个允许TAB而不是Enter工作正常但当然我没有得到保存......

            AutoCompleteStringCollection sc = Properties.Settings.Default.IPList;
        sc.Add(textBox1.Text);
        Properties.Settings.Default.IPList = sc;

用户就是这样,如何删除下拉列表中的条目?

感谢您的协助。

伊恩

2 个答案:

答案 0 :(得分:0)

此外,您可以通过将设置类型更改为System.Windows.Forms.AutoCompleteStringCollection

将自动填充条目存储为AutoCompleteStringCollection
        AutoCompleteStringCollection sc = Properties.Settings.Default.autoComp
        textBox1.AutoCompleteCustomSource = sc;
        sc.Add("new option")//or whatever you want
        //set the setting
        Properties.Settings.Default.autoComp;
        //save it to file
        Properties.Settings.Default.Save();

答案 1 :(得分:0)

我有点担心你是否有兴趣保存Textbox选择或AutoCompleteSource,假设你需要存储Specialized.StringCollection(IPList或更新的IPList),我有以下片段可能有助于解决你的问题。

AutoCompleteStringCollection source = textBox1.AutoCompleteCustomSource;

if (Properties.Settings.Default.IPLIST != null)
{
    Properties.Settings.Default.IPLIST.Clear();
    Properties.Settings.Default.IPLIST.AddRange(source.Cast<string>().ToArray());
    Properties.Settings.Default.Save();
}