public DialogResult ShowForm() { using (SetupForm setupForm = new SetupForm(_inputEffects, _inputModules)) { IInputModuleInstance[] inputModules = _inputModules.ToArray(); if (setupForm.ShowDialog() == DialogResult.OK) { _inputModules = setupForm.InputModules.ToList(); _inputEffects = setupForm.Maps.ToList(); // Turn off any removed modules. var removedModules = inputModules.Except(_inputModules); _StopModules(removedModules); // Turn on any added modules. var addedModules = _inputModules.Where(x => !x.IsRunning); _StartModules(addedModules); } return setupForm.DialogResult; } }