如何在c#中保存数据的列表视图为.txt格式,以便下次打开表单时可以访问它
本文关键字:下次 表单 访问 格式 txt 保存 数据 视图 列表 | 更新日期: 2023-09-27 17:49:57
如何在listview中保存数据?
例如,如果用户在listview中输入了一些东西,然后关闭了应用程序,那么所有的信息都会丢失。有没有办法在listView中保存信息呢?
这是我用来从文本框输入信息到listView1的代码:
string[] items = { titletxt.Text, statustxt.Text };
ListViewItem lvi = new ListViewItem(items);
listView1.Items.Add(lvi);
更新(29/12/2012)谢谢你的帮助!但是我好像不能使它工作。我已经创建了一个非常简单的形式,试图让它工作。它有3个文本框(nametext, agetext, haircolortxt),一个按钮,和列表视图(ListOfPeople)。
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace listview
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string[] items = { NameTxt.Text, AgeTxt.Text, HairColourTxt.Text };
ListViewItem lvi = new ListViewItem(items);
ListOfPeople.Items.Add(lvi);
}
}
}
我已经尝试添加@user574632 &@Joe,@DmitryKvochkin和我已经改变了一些,但仍然不能让它工作。我不确定我做错了什么?我试着添加这个:
private void saveListOfPeopleItems(string path, ListView lv)
{
var delimeteredListviewData = new List<string>();
foreach (ListViewItem lvi in lv.Items)
{
string delimeteredItems = string.Empty;
foreach (ListViewItem.ListViewSubItem lvsi in lvi.SubItems)
{
delimeteredItems += lvsi.Text + "#";
}
delimeteredListviewData.Add(delimeteredItems);
}
System.IO.File.WriteAllLines(path, delimeteredListviewData.ToArray());
}
private void loadListOfPeopleItems(string path, ListView lv)
{
foreach (string line in System.IO.File.ReadAllLines(path))
{
lv.Items.Add(new ListViewItem(line.Split(new char[] { '#' }, StringSplitOptions.RemoveEmptyEntries)));
}
}
您需要创建保存逻辑,没有自动方法。
最简单的方法是使用Serialization
(查找ISerializable
)保存到您选择的文件(命名为您喜欢的任何名称):您可以以这种方式保存整个对象。这是一个关于序列化的简单教程。
另一种方法是将listview内容解析为字符串(只保留您需要的内容),并将字符串保存到文本文件(TextReader
和TextWriter
)。
如果你想保存应用程序设置(而不是用户数据),看看这个链接,或者这个链接可能更容易阅读。
最后,如果你需要与定期保存的数据进行交互,或者如果你有很多数据要存储,请使用数据库(SQL, mySQL等)。后一种方法是实现时间最长的。
如果想保存为文本文件,可以使用以下命令:
private void saveListViewItems(string path, ListView lv)
{
var delimeteredListviewData = new List<string>();
foreach (ListViewItem lvi in lv.Items)
{
string delimeteredItems = string.Empty;
foreach (ListViewItem.ListViewSubItem lvsi in lvi.SubItems)
{
delimeteredItems += lvsi.Text + "#";
}
delimeteredListviewData.Add(delimeteredItems);
}
System.IO.File.WriteAllLines(path, delimeteredListviewData.ToArray());
}
private void loadListViewItems(string path, ListView lv)
{
foreach (string line in System.IO.File.ReadAllLines(path))
{
lv.Items.Add(new ListViewItem(line.Split(new char[]{'#'}, StringSplitOptions.RemoveEmptyEntries)));
}
}
您可以使用集成的visual studio设置,然后将其绑定到您的listview,甚至在设计器中。修改列表视图后,你可以保存它们
我认为答案是:使用。txt文件您也可以创建一个SQL数据库,并保存在那里…