0

リストボックスの内容をテキスト ファイルに保存しようとしています。それは機能しますが、リストボックスに入力されたテキストの代わりに、次のようになります。

System.Windows.Forms.ListBox+ObjectCollection

フォーム自体に使用している関連コードを次に示します。

listString noted = new listString();
        noted.newItem = textBox2.Text;
        listBox1.Items.Add(textBox2.Text);

        var radioOne = radioButton1.Checked;

        var radioTwo = radioButton2.Checked;

        var radioThree = radioButton3.Checked;

        if (radioButton1.Checked == true)
        {
            using (StreamWriter sw = new StreamWriter("C:\\windowsNotes.txt"))
            {
                sw.Write(listBox1.Items);
            }
        }
        else if (radioButton2.Checked == true)
        {
            using (StreamWriter sw = new StreamWriter("C:\\Users\\windowsNotes.txt"))
            {
                sw.Write(listBox1.Items);
            }
        }
        else if (radioButton3.Checked == true)
        {
            using (StreamWriter sw = new StreamWriter("../../../../windowsNotes.txt"))
            {
                sw.Write(listBox1.Items);
            }
        }
        else
        {
            MessageBox.Show("Please select a file path.");
        }
    }

クラスは単純なものです:

 namespace Decisions
 {
     public class listString
     {
         public string newItem {get; set;}

         public override string ToString()
         {
             return string.Format("{0}", this.newItem);
         }
     }
 }
4

3 に答える 3

1

あなたはただすることはできません

   sw.Write(listBox1.Items);

コレクションオブジェクト自体で .ToString() を呼び出しているためです。

次のようなものを試してください:

   sw.Write(String.Join(Environment.NewLine, listBox1.Items));

または、各アイテムをループして、個々のアイテムを ToString します。

于 2013-04-27T22:21:41.963 に答える