To reproduce:
Add a RadShortcut to a RadMenuItem which is in a context menu:
RadContextMenu m = new RadContextMenu();
RadGridView grid = new RadGridView
{
Parent = this,
Dock = DockStyle.Fill
};
RadContextMenuManager mm = new RadContextMenuManager();
mm.SetRadContextMenu(grid, m);
RadMenuItem rtsmNew = new RadMenuItem("New");
rtsmNew.Click += rtsmNew_Click;
RadShortcut rs = new RadShortcut(Keys.None, Keys.F2);
rtsmNew.Shortcuts.Add(rs);
rtsmNew.HintText = rs.GetDisplayText();
m.Items.Add(rtsmNew);
..
private void rtsmNew_Click(object sender, EventArgs e)
{
new Form().ShowDialog();
}
Workaround:
Check whether the context menu is visible before showing the form:
private void rtsmNew_Click(object sender, EventArgs e)
{
RadMenuItem item = sender as RadMenuItem;
if (item.ElementTree.Control.Visible)
{
(item.ElementTree.Control as RadContextMenuDropDown).ClosePopup(RadPopupCloseReason.CloseCalled);
new Form().ShowDialog();
}
}