我希望能够从文件中读取文本,并将其放入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());
没有用,因为它没有把它放到listview中。我试图寻找其他想法,但没有任何效果。
完整的代码是:
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());
}
}
非常感谢!
答案 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.