internal static bool ProcessMenuKey(ref Message m)
{
// If we have a currently active menu, deactivate it
if (Application.KeyboardCapture != null)
{
if (Application.KeyboardCapture.OnMenuKey())
{
return(true);
}
}
// Get the parent form of this message
Form f = (Form)Control.FromHandle(m.HWnd).TopLevelControl;
// If there isn't a Form with this, there isn't much we can do
if (f == null)
{
return(false);
}
// Check the MainMenuStrip property first
if (f.MainMenuStrip != null)
{
if (f.MainMenuStrip.OnMenuKey())
{
return(true);
}
}
// Look for any MenuStrip in the form
lock (toolstrips)
foreach (WeakReference wr in toolstrips)
{
ToolStrip ts = (ToolStrip)wr.Target;
if (ts == null)
{
continue;
}
if (ts.TopLevelControl == f)
{
if (ts.OnMenuKey())
{
return(true);
}
}
}
return(false);
}