Вот базовое c исправление:
private StreamWriter file = null;
public void button1_Click(object sender, EventArgs e)
{
button1.Visible = false;
button2.Visible = true;
if (file == null)
file = new StreamWriter("test.txt");
file.WriteLine(value.ToString());
}
private void button2_Click(object sender, EventArgs e)
{
button1.Visible = true;
button2.Visible = false;
if (file is object)
file.Close();
}
Но на самом деле в большинстве случаев не рекомендуется держать файл открытым. Как правило, вы хотите что-то более похожее на это, которое обрабатывает открытие и закрытие всех необходимых потоков в одном go и сохраняет файл открытым только в течение минимально необходимой продолжительности:
public void button1_Click(object sender, EventArgs e)
{
File.AppendAllText("test.txt", value.ToString());
}
И так как мы всегда закрываем файл сразу, вторая кнопка вообще не нужна.