Sir*_*ggs 8 c# listbox save winforms
最近我一直非常喜欢C#,我只是用它测试,但似乎有一部分我没有得到.
基本上我想要它,这样当我点击SAVE按钮时必须将列表框中的所有项目保存到文本文件中.目前在文件中提出的所有内容都是System.Windows.Forms.ListBox+ObjectCollection.
这是我到目前为止所得到的.随着SaveFile.WriteLine(listBox1.Items);我尝试使用许多不同的方法的部分,我似乎无法搞清楚.还要记住,在我的程序的最终产品中,我希望它回读那个文本文件并将文本文件中的内容输出到列表框中,如果这不可能那么我的不好,我是新手C#毕竟;)
private void btn_Save_Click(object sender, EventArgs e)
{
const string sPath = "save.txt";
System.IO.StreamWriter SaveFile = new System.IO.StreamWriter(sPath);
SaveFile.WriteLine(listBox1.Items);
SaveFile.ToString();
SaveFile.Close();
MessageBox.Show("Programs saved!");
}
Run Code Online (Sandbox Code Playgroud)
Iva*_*vov 11
从你的代码
SaveFile.WriteLine(listBox1.Items);
你的程序实际上是这样的:
SaveFile.WriteLine(listBox1.Items.ToString());
Run Code Online (Sandbox Code Playgroud)
集合的.ToString()方法Items返回collection(System.Windows.Forms.ListBox+ObjectCollection)的类型名称,因为.ToString()如果不覆盖该方法,这是默认行为.
为了以有意义的方式保存数据,您需要循环遍历每个项目并按照您需要的方式编写它.这是一个示例代码,我假设您的项目具有适当的.ToString()实现:
System.IO.StreamWriter SaveFile = new System.IO.StreamWriter(sPath);
foreach(var item in listBox1.Items)
{
SaveFile.WriteLine(item.ToString());
}
Run Code Online (Sandbox Code Playgroud)
Items 是一个集合,您应该遍历所有项目以保存它们
private void btn_Save_Click(object sender, EventArgs e)
{
const string sPath = "save.txt";
System.IO.StreamWriter SaveFile = new System.IO.StreamWriter(sPath);
foreach (var item in listBox1.Items)
{
SaveFile.WriteLine(item);
}
SaveFile.Close();
MessageBox.Show("Programs saved!");
}
Run Code Online (Sandbox Code Playgroud)