Эй, ребята, у меня возникли небольшие проблемы.
Итак, у меня есть кнопка загрузки, которая загружает файл, и кнопка сохранения, чтобы сохранить файл.У меня также есть кнопка выхода, которая закрывает программу.Что мне нужно помочь, так это когда я закрываю программу, я не проверяю, есть ли какие-либо вещи StreamReader или StreamWriter, которые не были закрыты.
Вот что у меня есть: наверху я объявляю этиребята
bool isDirtyBoolean = false;
string moreData = "";
Моя кнопка загрузки выглядит следующим образом
private void loadToolStripMenuItem_Click(object sender, EventArgs e)
{
//begin in the project folder
openFileDialog1.InitialDirectory = Directory.GetCurrentDirectory();
//display the file open dialog box
DialogResult responseDialogResult;
responseDialogResult = openFileDialog1.ShowDialog();
if (responseDialogResult != DialogResult.Cancel)
{ //check that user did not click the cancel button
//create a streamreader object for the selected file,
//read the file contents,
//and display each line of the file in the list box
StreamReader nameStreamReader = new StreamReader(openFileDialog1.FileName);
while (nameStreamReader.Peek() != -1)
{
freindsDataListBox.Items.Add(nameStreamReader.ReadLine());
}
nameStreamReader.Close();
isDirtyBoolean = true;
}
}
И моя кнопка сохранения выглядит следующим образом
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
//begin in the project folder
saveFileDialog1.InitialDirectory = Directory.GetCurrentDirectory();
//display the file save dialog
DialogResult responseDialogResult;
responseDialogResult = saveFileDialog1.ShowDialog();
if (responseDialogResult != DialogResult.Cancel)
{ //check that user did not click the cancel button
//create a streamWriter object and
//then write out the list box items to the file
StreamWriter nameStreamWriter = new StreamWriter(saveFileDialog1.FileName);
int count = freindsDataListBox.Items.Count;
for (int i = 0; i < count; i++)
{
nameStreamWriter.WriteLine(freindsDataListBox.Items[i]);
}
nameStreamWriter.Close();
isDirtyBoolean = true;
freindsDataListBox.Items.Clear();
}
}
Моя кнопка выхода выглядит следующим образом
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
if (isDirtyBoolean == false)
nameStreamReader.Close();
nameStreamWriter.Close();
this.Close();
}
То, что я пытался сделать, это настроить bool isDirtyBoolean вверх, затем, когда Stream Reader или Writer закрывается, устанавливает значение bool в true, поэтому, когда я выхожу из приложения, если оно все еще установлено в false,в любом случае он закрывает их.
Но это не работает, потому что значение isDirtyBoolean - это те частные кнопки void, и я не могу получить к ним доступ.