After weeks of inactivity, I finally managed to get a demo project in place for the BreadCrumbs controls. You can download it here. The code includes few updates I have made since the last version. For the sake of flexibility, I have kept the basic control as simple as possible. In the demo, I have added few additional helper classes to provide the full functionality desired.
Extending the control is pretty simple too. For instance, to display the menus for each of the sub items in a list item, you handle the SubItemClicked event. The SubItemClickedEventArgs passed to you along with this event provides you with the row index, column index and the bottom-left corner pixel coordinates of the sub item. In the demo app, this event handled as;
void ListBox_SubItemClicked(object sender, BreadCrumbsListBox.SubItemClickedEventArgs e) { ContextMenuStrip menu = null; if (e.ColumnIndex == 1 && breadCrumbsList.ListBox.SelectedItem != null) menu = GetTemplateMenu(breadCrumbsList.ListBox.SelectedIndex); else menu = _entityMenu; menu.Show(breadCrumbsList, breadCrumbsList.PointToClient(e.BottomLeftCorner)); }
Here, the _entityMenu is a pre-constructed menu while as the “Template Menu” is reconstructed every time based on the selection.