2013-10-24 64 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 –

相關問題