private void TabPanel_MouseClick(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Right && e.Button != MouseButtons.Middle) { return; } for (int i = 0; i < TabPanel.TabPages.Count; i++) { if (TabPanel.GetTabRect(i).Contains(e.Location)) { var tab = TabPanel.TabPages[i]; if (e.Button == MouseButtons.Right) { tab.ContextMenu = new ContextMenu(); tab.ContextMenu.MenuItems.Add(new MenuItem("Disconnect", (s, evt) => Disconnect(tab.Name))); tab.ContextMenu.MenuItems.Add(new MenuItem("Reconnect", (s, evt) => Reconnect(tab.Name))); tab.ContextMenu.Show(TabPanel, e.Location); return; } if (e.Button == MouseButtons.Middle) { Disconnect(tab.Name); return; } } } }