При сохранении параметров программы используются стандартные диалоговые окна для выбора файла.
private void button4_Click(object sender, EventArgs e)
{
//подготовка диалогового окна
saveFileDialog1.FileName = "";
//вызов диалогового окна и определение результатов его работы
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
//остановка таймера, для того чтобы во время записи не произошло перемещение шаров
timer1.Enabled = false;
// блок try..finally для гарантированного запуска таймера после сохранения
try
{
//определение расширения файла
if (new FileInfo(saveFileDialog1.FileName).Extension == ".dat")
{
//создание бинарного потока данных
using (BinaryWriter bw = new BinaryWriter(new FileStream(this.saveFileDialog1.FileName, FileMode.Create)))
{
//сохранения состояния области рисования
Space.Save(bw);
//сохранение количества шаров
bw.Write(listBox1.Items.Count);
//сохранение шаров
for (int i = 0; i < listBox1.Items.Count; i++)
{
satellite = listBox1.Items[i] as Shar;
satellite.Save(bw);
}
}
}
else
{
//создание текстового потока данных
using (StreamWriter sw = new StreamWriter(new FileStream(this.saveFileDialog1.FileName, FileMode.Create)))
{
//сохранение области рисования
Space.Save(sw);
//сохранение количества шаров
sw.WriteLine(listBox1.Items.Count);
//сохранение шаров
for (int i = 0; i < listBox1.Items.Count; i++)
{
satellite = listBox1.Items[i] as Shar;
satellite.Save(sw);
}
}
}
}
finally
{
//запуск таймера
timer1.Enabled = true;
}
}
}