public void Delete(bool prompt, FrmMain dialogParent) { if (!(prompt && ((dialogParent == null) || (new DlgYesNo(dialogParent, "<LOC>Confirm Delete", "<LOC>Are you sure you want to delete this emote?").ShowDialog() != DialogResult.Yes)))) { FileStream serializationStream = null; try { string fileName = this.FileName; if (File.Exists(fileName)) { serializationStream = File.OpenRead(fileName); List<Emote> graph = new BinaryFormatter().Deserialize(serializationStream) as List<Emote>; serializationStream.Close(); if (graph != null) { graph.Remove(this); serializationStream = File.OpenWrite(fileName); new BinaryFormatter().Serialize(serializationStream, graph); serializationStream.Close(); serializationStream = null; } } AllEmotes.Remove(this.CharSequence); OnEmotesChanged(); } finally { if (serializationStream != null) { serializationStream.Close(); } } } }