最近、私はC#をかなり楽しんでいて、それを使ってテストしているだけですが、得られない部分があるようです。
基本的には、[保存]ボタンをクリックしたときに、リストボックス内のすべてのアイテムをテキストファイルに保存する必要があるようにします。現時点では、ファイルに含まれているのは_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!");
}
_
あなたのコードから
SaveFile.WriteLine(listBox1.Items);
あなたのプログラムは実際にこれを行います:
_SaveFile.WriteLine(listBox1.Items.ToString());
_
Items
コレクションの.ToString()
メソッドは、コレクションのタイプ名(_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());
}
_
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!");
}