1

フォームを閉じると、somo データをテキスト ファイルに書き込みたいのですが、次のようになります。

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    StreamWriter archivo = new StreamWriter(@"C:\Users\Marcelo\Documents\Proyectos\database.txt");
    for (int i = 1; i <=10 ; i++)
    {
        archivo.Write(nombres[i] + " " + temp[i] + " " + cap[i]);
        if (i != nseries)
            archivo.Write("\r\n"); 
    }
    archivo.Close();
}

しかし、閉じるボタンをクリックしても機能せず、複数回クリックする必要があります。どうしたの?

編集:この例外が発生します:「プロセスはファイル '...' にアクセスできません。他のプロセスで使用されているためです (大まかな翻訳) ¿どうすれば修正できますか?

最終編集:私は考え出しました。私のアプリケーションの他の方法は、書き込み後にプログラムを閉じることではありませんでした。親切な助けをありがとうございました

4

2 に答える 2

-1

デザイナーでフォームを閉じるイベントを確認してください。コード ビハインド (Form1_FormClosing) とデザイナーモード イベントの名前が同じですか?

コードビハインドにもブレークポイントを入れてください。

イベントでTry-Catchを使用してください。

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    try
    {
        StreamWriter archivo = new StreamWriter(@"C:\Users\Marcelo\Documents\Proyectos\database.txt");
        for (int i = 1; i <=10 ; i++)
        {
            archivo.Write(nombres[i] + " " + temp[i] + " " + cap[i]);
            if (i != nseries)
                archivo.Write("\r\n"); 

        }
        archivo.Close();
    }
    catch (Exception e)
    {
        Debug.WriteLine(e.Message);
        //MessageBox.Show(e.Message);
    }
}
于 2013-10-25T18:30:35.163 に答える