1

これは、Form1 の上部で行ったことです。

string line;
StreamWriter w;
StreamReader sr;

次に、コンストラクターで次のようにします。

if (File.Exists(@"d:\test.txt"))
            {
                sr = new StreamReader(@"d:\test.txt");
                line = sr.ReadToEnd();
                textBox3.Text = line;
                sr.Close();
                sr.Dispose();
            }
            w = new StreamWriter(@"d:\test.txt");

次に、textBox3 Text Changed イベントで:

private void textBox3_TextChanged(object sender, EventArgs e)
        {
            if (w == null)
            {
                w = new StreamWriter(@"d:\ircbotsettings.txt");
                w.Write(line);
                w.Write(textBox3.Text);
            }
        }

次に、Form1 Closing イベントとボタン クリック イベントで、両方の場所に追加しました。

w.Close();
w.Dispose();

テキストボックスのテキスト変更イベントでは、最初に書き込みのためにファイルを開いて作成しようとしています。

問題は、プログラムを実行しているときに、最初に textBox3 テキスト変更イベントが自動的に発生し、次の行に例外がスローされることです。

w = new StreamWriter(@"d:\ircbotsettings.txt");

別のプロセスで使用されているため、プロセスはファイル 'd:\ircbotsettings.txt' にアクセスできません

私がやりたいことは次のとおりです。

textBox にテキストをリアルタイムで入力すると、テキスト ファイルに保存されます。プログラムを終了して再度実行すると、テキストファイルからテキストを読み取り/ロードし、テキストボックスに追加/配置します。

したがって、テキストファイルには毎回1つの文字列のみが含まれている必要があり、プログラムを実行するたびに、文字列を読み取り/テキストボックスにロードする必要があります。

4

1 に答える 1