System.Windows.Forms.ToolStripManager.ProcessMenuKey C# (CSharp) Method

ProcessMenuKey() static private method

static private ProcessMenuKey ( Message &m ) : bool
m Message
return bool
		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;
		}