protected override void OnSelectionChangeCommitted(EventArgs e) { int selectedIndex = this.SelectedIndex; if ((selectedIndex >= 0) && string.IsNullOrEmpty(base.SelectedItem.ToString())) { selectedIndex += (this.SelectedIndex > this.LastSelectedIndex) ? 1 : -1; } if (selectedIndex == (this.Items.Count - 1)) { using (FilterDialog dialog = new FilterDialog()) { IVirtualItemFilter customFilter = ((NamedFilter) this.Items[this.Items.Count - 1]).Filter; dialog.Filter = customFilter; dialog.RememberFilterEnabled = false; if (dialog.Execute(base.FindForm())) { IVirtualItemFilter filter = dialog.Filter; this.PopulateFilters(filter); for (int i = 0; i < this.Items.Count; i++) { NamedFilter filter3 = this.Items[i] as NamedFilter; if (((filter3 != null) && (filter3.Filter != null)) && filter3.Filter.Equals(filter)) { selectedIndex = i; goto Label_0144; } } } else { this.PopulateFilters(customFilter); selectedIndex = this.LastSelectedIndex; } } } Label_0144: if (((selectedIndex >= this.Items.Count) || (selectedIndex < 0)) || string.IsNullOrEmpty(this.Items[selectedIndex].ToString())) { selectedIndex = -1; } this.SelectedIndex = selectedIndex; this.LastSelectedIndex = selectedIndex; base.OnSelectionChangeCommitted(e); }
private void btnCustomizeFilter_Click(object sender, EventArgs e) { using (FilterDialog dialog = new FilterDialog()) { base.AddOwnedForm(dialog); dialog.Filter = (IVirtualItemFilter) this.btnCustomizeFilter.Tag; dialog.RememberFilterEnabled = false; if (dialog.Execute(this)) { this.btnCustomizeFilter.Tag = dialog.Filter; this.OnChanged(EventArgs.Empty); } } }