2013-10-24 66 views
1

我希望能够从文件中读取文本,并将其放入列表视图列。 文件内的文本将以'/'分隔,并且每个/代表文本将加入下一列的时间。 有些事情我已经尝试是,从文件中读取文本并将其放入listview子项目中?

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()); 

其没有工作,因为它没有把它放到listview.I've尝试了其他的想法四处寻找,但没有奏效。

完整的代码是:

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()); 



      } 
     } 

非常感谢!

+2

请包括样本输入文件样本,你的代码来填充'fileContent'变量太多。 –

+0

简单地实例化一个ListViewItem并向它添加东西不会将它添加到ListView中。你真的将ListVIewItem添加到ListView吗? –

+0

字节我添加了!另外,我不明白你的问题西蒙。 –

回答

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. 
+0

嗯,工作!但是,我想添加的一个单词是'普通'。它把它分成P,L,A,I,N,并将它分成多列而不是我拥有的多个词。任何原因为什么?; –

+0

不..没有你遇到麻烦的文件样本,我没有办法告诉。 –

+0

简单/平滑/粗糙/冷静的话,其分裂平原高达P L A I N N –

相关问题