public virtual DropdownMenu Show(Control control) { Close(); menu = CreateNewMenu(); menu.Size = new Size(control.Width + menu.Padding.Horizontal, 0); menu.Items.Clear(); foreach (object obj in this.Items) { menu.Items.Add(obj); } Rectangle controlRect = control.RectangleToScreen(control.ClientRectangle); Rectangle screenBounds = Screen.FromControl(control).WorkingArea; int menuHeight = menu.Height; if (controlRect.Bottom + menuHeight < screenBounds.Bottom) { menu.Location = new Point(controlRect.Left - menu.Padding.Left, controlRect.Bottom); } else { menu.Location = new Point(controlRect.Left - menu.Padding.Left, controlRect.Left - menuHeight); } menu.Show(); menu.FocusItem(SelectedIndex); return(menu); }
public virtual DropdownMenu Show(Rectangle bounds) { Close(); menu = CreateNewMenu(); menu.Size = bounds.Size; menu.Location = bounds.Location; menu.Items.Clear(); foreach (object obj in this.Items) { menu.Items.Add(obj); } menu.Show(); menu.FocusItem(SelectedIndex); return(menu); }