System.Windows.Forms.ToolStripDropDown.OnVisibleChanged C# (CSharp) Method

OnVisibleChanged() protected method

protected OnVisibleChanged ( EventArgs e ) : void
e System.EventArgs
return void
		protected override void OnVisibleChanged (EventArgs e)
		{
			base.OnVisibleChanged (e);

			if (owner_item != null && owner_item is ToolStripDropDownItem) {
				ToolStripDropDownItem dropdown_owner = (ToolStripDropDownItem)owner_item;
				if (Visible)
					dropdown_owner.OnDropDownOpened (EventArgs.Empty);
				else
					dropdown_owner.OnDropDownClosed (EventArgs.Empty);
			}
		}

Usage Example

            public override void MenuWillOpen(NSMenu menu)
            {
                if (owner.currentMenu != menu)
                {
                    var cancelEventArgs = new CancelEventArgs();
                    if (owner.owner_item != null && owner.owner_item is ToolStripDropDownItem)
                    {
                        ToolStripDropDownItem dropdown_owner = (ToolStripDropDownItem)owner.owner_item;
                        dropdown_owner.OnDropDownShow(cancelEventArgs);
                    }
                    if (!cancelEventArgs.Cancel)
                    {
                        owner.OnOpening(cancelEventArgs);
                    }
                    if (cancelEventArgs.Cancel)
                    {
                        menu.CancelTrackingWithoutAnimation();
                        return;
                    }
                }

                owner.is_visible  = true;
                owner.currentMenu = menu;
                owner.OnVisibleChanged(EventArgs.Empty);

                // Send WM_CANCELMODE to cancel any grabs
                owner.CancelGrab();

                // Convert all the menu items to NSMenuItems (w/ embedded views if necessary)
                if (!beforePopupCalled)
                {
                    BeforePopup();
                }

                owner.OnOpened(EventArgs.Empty);
            }