private void _switchPage_EnabledChanged(object sender, EventArgs e) { Debug.Assert(sender is NuGenSwitchPage, "sender is NuGenSwitchPage"); NuGenSwitchPage switchPage = (NuGenSwitchPage)sender; Debug.Assert(_pageButtonDictionary != null, "_pageButtonDictionary != null"); Debug.Assert(_pageButtonDictionary.ContainsKey(switchPage), "_pageButtonDictionary.ContainsKey(switchPage)"); NuGenSwitchButton switchButton = _pageButtonDictionary[switchPage]; switchButton.Enabled = switchPage.Enabled; switchButton.Invalidate(); if ( !switchPage.Enabled && switchPage == this.SelectedSwitchPage ) { NuGenSwitchPage newSelectedSwitchPage = null; for (int i = this.SelectedIndex - 1; i > -1; i--) { if (this.SwitchPages[i].Enabled) { newSelectedSwitchPage = this.SwitchPages[i]; } } if (newSelectedSwitchPage == null) { for (int i = this.SelectedIndex + 1; i < this.SwitchPages.Count; i++) { if (this.SwitchPages[i].Enabled) { newSelectedSwitchPage = this.SwitchPages[i]; } } } this.SelectedSwitchPage = newSelectedSwitchPage; } }