0

在 VS2010 中,c# windows 窗体。我正在尝试将当前位于我的 bin\Debug 文件夹中的文本文件(“booklist.txt”)加载并显示(读取)到多列列表视图中,它是制表符分隔的。我尝试了一个 foreach 循环 foreach(string ya in arrayname),它似乎在列表视图扩展时填充了一些东西,但没有显示任何内容并冻结了程序。编辑:通过正确添加,我得到了文本中的第一条记录来填充 LV,但没有其他记录。记录由新行分隔,并用制表符分隔不同的字段/信息以进入每一列。

    static FileStream textFile = new FileStream("booklist.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
    StreamReader reader = new StreamReader(textFile);
    string[] booksTextArray;
    private void LoadButton_Click(object sender, EventArgs e)
    {
        // loads text file with existing book catalog
        string recordIn = reader.ReadLine();
        booksTextArray = recordIn.Split('\t');
        for (int i = 0; i < booksTextArray.Length; i++)
        {
            listView1.Items.Add(booksTextArray[i]);
        }
    }
4

1 回答 1

1

这是您可以使用的通用算法:

//Holders.
string line = "";
string[] items;
ListViewItem listItem;

//While there are lines to read.
while((line = reader.ReadLine()) != null)
{
    items = line.Split('\t') //Split the line.
    listItem = new ListViewItem(); //"Row" object.

        //For each item in the line.
        for (int i = 0; i < items.Length; i++)
        {
            if(i == 0)
            {
                listItem.Text = items[i]; //First item is not a "subitem".
            }
            else
            {
                listItem.SubItems.Add(items[i]); //Add it to the "Row" object.
            }
        }

    listView1.Items.Add(listItem); //Add the row object to the listview.
}
于 2013-06-11T06:24:38.207 回答