从文件中读取文本并将其放入列表视图子项中
本文关键字:列表 视图 读取 文件 取文本 | 更新日期: 2023-09-27 18:36:44
我希望能够从文件中读取文本,并将其放入列表视图列中。文件中的文本将由"/"分隔,每个/表示文本何时连接下一列。我尝试过的一些事情是,
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());
}
}
多谢!
你只需要将你的新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.