データをリストビューに保存するにはどうすればよいですか?
たとえば、ユーザーがリストビューに何かを入力してからアプリケーションを閉じると、その情報はすべて失われます。リストビューに何かを入れるとすぐに情報を保存する方法はありますか?
これは、テキスト ボックスから listView1 に情報を入力するために使用するコードです。
string[] items = { titletxt.Text, statustxt.Text };
ListViewItem lvi = new ListViewItem(items);
listView1.Items.Add(lvi);
更新 (2012 年 12 月 29 日)
助けてくれてありがとう!しかし、私はそれを機能させることができないようです。私は本当に簡単なフォームを作成して、それを機能させようとしました。3 つのテキスト ボックス (NameTxt、AgeTxt、HairColourTxt)、ボタン、およびリストビュー (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)));
}
}