C# 尝试从txt文件填充textbox和listview
我可以使用以下方法将文本框文本和listview项正确保存到txt文件:C# 尝试从txt文件填充textbox和listview,c#,user-interface,listview,C#,User Interface,Listview,我可以使用以下方法将文本框文本和listview项正确保存到txt文件: private void saveToolStripMenuItem_Click(object sender, EventArgs e) { if (saveFileDialog1.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) { using (StreamWriter writer = n
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
if (saveFileDialog1.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
{
using (StreamWriter writer = new StreamWriter(saveFileDialog1.FileName))
{
//writer.WriteLine(accountText.Text);
writer.WriteLine(accountText.Text);
if (transactionList.Items.Count > 0)
{
foreach (ListViewItem item in transactionList.Items)
{
StringBuilder newString = new StringBuilder();
foreach (ListViewItem.ListViewSubItem listSub in item.SubItems)
{
newString.Append(string.Format("{0}\t", listSub.Text));
}
writer.WriteLine(newString.ToString());
}
writer.WriteLine();
}
}
}
}
但是,我只能加载文本框,似乎无法填充listview。以下是迄今为止我所做的:
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
{
using (StreamReader reader = new StreamReader(openFileDialog1.FileName))
{
accountText.Text = reader.ReadLine();
if (transactionList.Items.Count == 0)
{
foreach (ListViewItem item in transactionList.Items)
{
StringBuilder myString = new StringBuilder();
foreach (ListViewItem.ListViewSubItem listSub in item.SubItems)
{
myString.Append(string.Format("{0}\t", listSub.Text));
}
reader.Read();
}
reader.ReadToEnd();
}
}
}
}
任何提示都将不胜感激。据我所知,您没有将字符串放入
列表视图中
您将希望执行以下操作:
foreach (ListViewItem.ListViewSubItem listSub in item.SubItems)
{
myString.Append(string.Format("{0}\t", listSub.Text));
listSub.Text = myString.ToString();
}
你需要在阅读时扭转你所有的动作
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
{
using (StreamReader reader = new StreamReader(openFileDialog1.FileName))
{
accountText.Text = reader.ReadLine();
while(!reader.EndOfStream)
{
var myString = reader.ReadLine();
var subitems = myString.Split("\t");
// Create ListItem and assign subItems here...
transactionList.Items.Add(new ListviewItem(subitems));
}
}
}
}
}
只需按“\t”字符分割字符串,它将返回字符串[]。然后只需将这些数组项添加到listview
string[] items = reader.ReadLine().Split('\t');
foreach (var item in items)
{
var listViewItem = new ListViewItem(item);
transactionList.Items.Add(listViewItem);
}
你有一个if(transactionList.Items.Count==0)
,如果它是0,你就有一个foreach(transactionList.Items中的ListViewItem项目)
…但是如果列表中没有项目,什么都不会发生…?是的,我在发布之前忘了更改它。在输入问题和保留问题之间,我改变了一些事情。谢谢你的提醒。我有种感觉就是这样的。我试试看。谢谢你,那帮了大忙!