1

我希望能够从文件中读取文本,并将其放入 listviews 列中。文件中的文本将由“/”分隔,每个 / 表示文本何时加入下一列。我尝试过的一些事情是,

ListViewItem lv = new ListViewItem();
                lv.Text = fileContent[0].ToString();
                lv.SubItems.Add(fileContent[1].ToString());
                lv.SubItems.Add(fileContent[2].ToString());
                lv.SubItems.Add(fileContent[3].ToString());

它没有工作,因为它没有把它放到列表视图中。我试过四处寻找其他想法,但没有任何效果。

完整的代码是:

private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {

                string fileToOpen = ofd.FileName;

                System.IO.StreamReader sr = new System.IO.StreamReader(fileToOpen);
                string fileContent = sr.ReadToEnd();
                string[] fileItems = fileContent.Split('/');
                sr.Dispose();

                ListViewItem lv = new ListViewItem();
                lv.Text = fileContent[0].ToString();
                lv.SubItems.Add(fileContent[1].ToString());
                lv.SubItems.Add(fileContent[2].ToString());
                lv.SubItems.Add(fileContent[3].ToString());



            }
        }

非常感谢!

4

1 回答 1

1

您只需要将新ListViewItem的添加到ListView.. 您目前还没有这样做。您正在做的是创建一个独立的ListViewItem.. 并且它只是坐在内存中。

所以,在这些行之后:

ListViewItem lv = new ListViewItem();
lv.Text = fileContent[0].ToString();
lv.SubItems.Add(fileContent[1].ToString());
lv.SubItems.Add(fileContent[2].ToString());
lv.SubItems.Add(fileContent[3].ToString());

做这个:

yourListView.Items.Add(lv); // add the listviewitem to the listview

编辑

它拆分不正确的原因是因为您正在使用fileContent添加项目。fileContent是文件的全部内容.. 这不是你想要的。[]当您在访问单个字符的字符串上使用索引器方法时。

将您的代码更改为:

ListViewItem lv = new ListViewItem();
lv.Text = fileItems[0].ToString(); // Use fileItems.. its the result of the split.
lv.SubItems.Add(fileItems[1].ToString()); // Use fileItems.. its the result of the split.
lv.SubItems.Add(fileItems[2].ToString()); // Use fileItems.. its the result of the split.
lv.SubItems.Add(fileItems[3].ToString()); // Use fileItems.. its the result of the split.
于 2013-10-24T21:33:22.910 回答