You can do the following:
- Instead of directly add child items to ToolStripDropDownButton, delete it. Leave the ToolStripDropDownButton clean.
- Add a new ContextMenuStrip to the form and add your child items into the ContextMenuStrip. Don't forget to set to True the CheckOnClick property of each item if you want them to act as checkboxes.
- Set the Dropdown property of the ToolStripDropDownButton to the ContextMenuStrip just created.
- Add the following code in the Closing event of the ContextMenuStrip control:
Private Sub ContextMenuStrip1_Closing(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripDropDownClosingEventArgs) Handles ContextMenuStrip1.Closing
If e.CloseReason = ToolStripDropDownCloseReason.ItemClicked Then e.Cancel = True
End Sub
With all this you'll get your context menu always open when the user clicks on individual items, but will work as usual in the rest of situations (click outside the menu to close, click on the button to close, etc).
Hope that helps.