private void ListOptionsChanged(object sender, System.EventArgs e)
        {
            // sender
            var list = (ListBox)sender;

            // Close old
            _current?.Hide();
            _current?.Closed(null);
            PanelInner.Controls.Clear();

            // Open New
            _current      = _options[(string)list.SelectedItem];
            _current.Dock = DockStyle.Fill;
            PanelInner.Controls.Add(_current);
            _current.Shown(null);
            _current.Show();
        }
        public OptionsWindowController(params OptionsWindowBase[] options)
        {
            InitializeComponent();

            _options = new Dictionary <string, OptionsWindowBase>();

            foreach (var optionWindow in options)
            {
                var text = TextOrDefault(optionWindow);
                _options[text] = optionWindow;
                ListOptions.Items.Add(text);

                if (_options.Count == 1)
                {
                    ListOptions.SelectedIndex = 0;
                    _current = optionWindow;
                }
            }
        }