将项目添加到Listview

时间:2018-11-08 04:47:30

标签: c#

我已经完全分割了由逗号分隔的文本文件中的字符串。 我的问题是我无法在列表视图中显示数据。

我已经使用了这段代码,但是当我运行它并进行调试时,变量内部有值。但随后我完成了调试,在列表视图中未添加任何项目。

    private void ColumnHeaders()
    {
        lvResult.View = View.Details;
        lvResult.Columns.Add("ファイル名");
        lvResult.Columns.Add("フォルダ");
        lvResult.Columns.Add("比較結果");
        lvResult.Columns.Add("左日付");
        lvResult.Columns.Add("右日付");
        lvResult.Columns.Add("拡張子");

       for (int i = 0; i <= lvResult.Columns.Count; i++)
        {
            lvResult.Columns[i].Width = lvResult.Width / 6;
        }

    }


private  void viewTextFile()
{
    string[] lines = File.ReadAllLines(txtResultPath.Text + "A.YMD6063_new.txt");

    for (int x = 0 ; x <= lines.Length; x++)
    {
        string[] col = lines[x].Split(new char[] { ',' });
        ListViewItem lvItem = new ListViewItem();
        for (int i = 0; i <= col.Length; i++)
        {
            lvItem.Text = col[i].ToString();
            if (i == 0)
            {
                lvResult.Items.Add(lvItem);
            }
            else
            {
                lvResult.Items[x].SubItems[i].Text = lvItem.Text;
            }    
        }   
    }
}

Properties Listview

2 个答案:

答案 0 :(得分:1)

这是我尝试过的示例代码。希望这对您有帮助。

        listView1.Columns.Add("column1");
        listView1.Columns.Add("column2");
        listView1.Columns.Add("column3");
        listView1.Columns.Add("column4");

        string[] lines = new string[] { "value01,value02,value03,value04", "value11,value12,value13,value14" };

        foreach (string line in lines)
        {                   
            listView1.Items.Add(new ListViewItem(line.Split(',')));
        }

答案 1 :(得分:1)

  1. 将ListView.View设置为Details。既可以在设计器中实现,也可以像这样通过编程实现:

    lvResult.View = View.Details;

  2. 添加文件的每一行:

    private void viewTextFile()
    {
        foreach(var line in File.ReadAllLines(somefilepath))
            AddLineToListView(line);
    }
    
    private void AddLineToListView(string line)
    {
        if (string.IsNullOrEmpty(line))
            return;
    
        var lvItem = new ListViewItem(line.Split(','));
        lvResult.Items.Add(lvItem);
    }