private void Ok_Click(object sender, EventArgs e) { DialogResult = DialogResult.OK; switch (_mode) { default: case Mode.New: var domain = MemoryDomains.FirstOrDefault(d => d.Name == DomainDropDown.SelectedItem.ToString()); var address = AddressBox.ToLong() ?? 0; var notes = NotesBox.Text; var type = Watch.StringToDisplayType(DisplayTypeDropDown.SelectedItem.ToString()); var bigendian = BigEndianCheckBox.Checked; switch (SizeDropDown.SelectedIndex) { case 0: _watchList.Add(Watch.GenerateWatch(domain, address, WatchSize.Byte, type, bigendian, notes)); break; case 1: _watchList.Add(Watch.GenerateWatch(domain, address, WatchSize.Word, type, bigendian, notes)); break; case 2: _watchList.Add(Watch.GenerateWatch(domain, address, WatchSize.DWord, type, bigendian, notes)); break; } break; case Mode.Edit: DoEdit(); break; case Mode.Duplicate: var tempWatchList = new List <Watch>(); tempWatchList.AddRange(_watchList); _watchList.Clear(); foreach (var watch in tempWatchList) { _watchList.Add(Watch.GenerateWatch( watch.Domain, watch.Address, watch.Size, watch.Type, watch.BigEndian, watch.Notes)); } DoEdit(); break; } Close(); }