0

私はこれを行う方法を何時間も探していました。最良のアイデアは、for eachループを考え出し、それをStreamWriterに渡すことだと思います。

私は複数の異なる方法を試しましたが、誰かがそれを手伝ってくれるなら、私は自分のエラーを見るのに十分ではないかもしれません。

現在、ファイルが作成され、最初の行の「System.Windows.Forms.ListBox + ObjectCollection」のみが出力されます。これは、値が正しく渡されていないことを示しています。

コードは次のとおりです。

        private void btnSave_Click(object sender, EventArgs e)
    {
        StreamWriter myOutputStream = new StreamWriter("Myfile.csv");
        myOutputStream.WriteLine(lstBox.Items);
        myOutputStream.Close();
        //foreach (object item in lstBox.Items)
        //string listString = lstBox.SelectedItem.ToString();
        //StreamWriter streamBox = File.CreateText(@"testfile.csv");
        //streamBox.Write(listString);
        //streamBox.Close();
        //if (SaveFileDialog.ShowDialog() == DialogResult.OK)
        //{
        //    System.IO.StreamWriter streamBox = new System.IO.StreamWriter(SaveFileDialog);
        //    foreach (object item in lstBox.Items)
        //        streamBox.WriteLine(item.ToString());
        //    streamBox.Close();
        //}
    }

コメントアウトされた部分はすべて、私が過去に試したことです。しかし、今のところ、最も簡単な方法は上位3行だったと思います。

ご入力いただきありがとうございます。

4

2 に答える 2

3

あなたは書き出しているlistBox.Items、それはListBoxObjectCollectionです。各アイテムを書き込むには、foreachループが必要です。

StreamWriter myOutputStream = new StreamWriter("Myfile.csv");

foreach (var item in lstBox.Items)
{
    myOutputStream.WriteLine(item.ToString());
}

myOutputStream.Close();

usingここでブロックを使用できることにも注意してください。

using (StreamWriter myOutputStream = new StreamWriter("Myfile.csv"))
{
    foreach (var item in lstBox.Items)
    {
        myOutputStream.WriteLine(item.ToString());
    }
}
于 2012-10-29T17:55:14.223 に答える
0

まず、何が入っていListBoxますか?リストボックスの項目が単なる文字列項目である場合は、次のようにすることができます。

StreamWriter myOutputStream = new StreamWriter("Myfile.csv");
foreach (string item in lstBox.Items) {
    myOutputStream.WriteLine(item);
}
myOutputStream.Close();
于 2012-10-29T17:58:59.323 に答える