public virtual ToolStripDropDown MakeColumnSelectMenu(ToolStripDropDown strip)
{
System.Diagnostics.Debug.Assert(this.SelectColumnsOnRightClickBehaviour != ColumnSelectBehaviour.None);
// Append a separator if the menu isn't empty and the last item isn't already a separator
if (strip.Items.Count > 0 && (!(strip.Items[strip.Items.Count-1] is ToolStripSeparator)))
strip.Items.Add(new ToolStripSeparator());
if (this.AllColumns.Count > 0 && this.AllColumns[0].LastDisplayIndex == -1)
this.RememberDisplayIndicies();
if (this.SelectColumnsOnRightClickBehaviour == ColumnSelectBehaviour.ModelDialog) {
strip.Items.Add(this.MenuLabelSelectColumns, null, delegate(object sender, EventArgs args) {
(new ColumnSelectionForm()).OpenOn(this);
});
}
if (this.SelectColumnsOnRightClickBehaviour == ColumnSelectBehaviour.Submenu) {
ToolStripMenuItem menu = new ToolStripMenuItem(this.MenuLabelColumns);
menu.DropDownItemClicked += new ToolStripItemClickedEventHandler(this.ColumnSelectMenuItemClicked);
strip.Items.Add(menu);
this.AddItemsToColumnSelectMenu(menu.DropDownItems);
}
if (this.SelectColumnsOnRightClickBehaviour == ColumnSelectBehaviour.InlineMenu) {
strip.ItemClicked += new ToolStripItemClickedEventHandler(this.ColumnSelectMenuItemClicked);
strip.Closing += new ToolStripDropDownClosingEventHandler(this.ColumnSelectMenuClosing);
this.AddItemsToColumnSelectMenu(strip.Items);
}
return strip;
}