public void Show(Control control, Point point) { CommandBarItemCollection chevronItems = new CommandBarItemCollection(); Size size = ClientSize; for (int i = 0; i < items.Count; i++) { NativeMethods.RECT rect = new NativeMethods.RECT(); NativeMethods.SendMessage(Handle, NativeMethods.TB_GETITEMRECT, i, ref rect); if (rect.right > size.Width) { CommandBarItem item = items[i]; if (item.Visible) { if ((!(item is CommandBarSeparator)) || (chevronItems.Count != 0)) { chevronItems.Add(item); } } } } this.contextMenu.Mnemonics = false; this.contextMenu.Items.Clear(); this.contextMenu.Items.AddRange(chevronItems); this.contextMenu.Show(control, point); }
public CommandBar(CommandBarManager commandBarManager) { this.commandBarManager = commandBarManager; this.items = new CommandBarItemCollection(this); this.SetStyle(ControlStyles.UserPaint, false); this.TabStop = false; this.Font = SystemInformation.MenuFont; this.Dock = DockStyle.Top; }
protected override void Dispose(bool disposing) { if (disposing) { this.items.Clear(); this.items = null; this.contextMenu = null; } base.Dispose(disposing); }
private static Size GetImageSize(CommandBarItemCollection items) { Size imageSize = new Size(16, 16); for (int i = 0; i < items.Count; i++) { Image image = items[i].Image; if (image != null) { if (image.Width > imageSize.Width) { imageSize.Width = image.Width; } if (image.Height > imageSize.Height) { imageSize.Height = image.Height; } } } return(imageSize); }