在列表视图中添加项目

本文关键字:添加 项目 视图 列表 | 更新日期: 2023-09-27 18:07:23

我想添加一个项目到列表视图,我面临的问题是,当我添加一个项目,我在文本框中输入。它能够在我想要的listview列中插入值。但是当它更新时,它从文本文件加载的所有数据都丢失了。只剩下我输入的值。

添加数据前:http://www.hostpic.org/images/1508121529460086.png

插入数据后:http://www.hostpic.org/images/1508121531010086.png

private void button2_Click(object sender, EventArgs e)
{
    //add button
    string s;
    listView1.Items.Clear();
    listView1.BeginUpdate();
    for (int i = 0; i < comboBox1.Items.Count; i++)
    {
        if ((comboBox1.SelectedIndex + 1) + "" == proDetail[i].id)
        {
            //proDetail[i].estimation = double.Parse(textBox3.Text);
            proDetail[i].estimation = textBox3.Text;
            s = textBox4.Text;
            proDetail[i].pre = s.Split(',');
        }
    }
    for (int j = 0; j < comboBox1.Items.Count; j++)
    {
        if (proDetail[j].pre != null)
        {
            project = listView1.Items.Add(proDetail[j].id);
            project.SubItems.Add(proDetail[j].activity);
            if (proDetail[j].pre.Length <= 1)
            {
                foreach (string words in proDetail[j].pre)
                {
                    preValue = words;
                }
            }
            else
            {
                preValue = string.Empty;
                foreach (string words in proDetail[j].pre)
                {
                    preValue += words + ",";
                }
            }
            project.SubItems.Add(proDetail[j].estimation.ToString());
            project.SubItems.Add(preValue);         
        }
        else
        {
            project = listView1.Items.Add(proDetail[j].id);
            project.SubItems.Add(proDetail[j].activity);
        }
        listView1.EndUpdate();
        listView1.Refresh();
    }
}

在列表视图中添加项目

我忘了把project.SubItems.Add (proDetail [j] .estimation);

中的else语句。谢谢你的帮助。

这就是罪魁祸首:

listView1.Items.Clear();

已从控件中删除所有现有项。