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);
         }
     }
 }