在listview中添加项目

时间:2015-08-12 10:02:00

标签: c# winforms listview

我想在listview中添加项目,我面临的问题是当我在文本框中添加我输入的项目时。它能够在我想要的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();
    }
}

2 个答案:

答案 0 :(得分:1)

我忘了包括 project.SubItems.Add(proDetail [j]的.estimation);

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

答案 1 :(得分:0)

这是罪魁祸首:

listView1.Items.Clear();

已删除控件中的所有现有项目。