Open Panel as ToolStrip MenuItem after click on menu C#

来源:互联网 发布:手机录音放大软件 编辑:程序博客网 时间:2024/06/05 02:33

enter image description here



1down voteaccepted

Assuming WinForms, you can use a ToolStripControlHost to hold a Panel or a UserControl:

The control to show in the pop-up:

var panel = new Panel() {  BackColor = Color.White,  MinimumSize = new Size(150, 72),  Size = MinimumSize,     };panel.Paint += (s, e) => {  TextRenderer.DrawText(e.Graphics, "Pop-up Panel",  SystemFonts.DefaultFont, panel.ClientRectangle,  Color.Black, Color.Empty,  TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter);};

The ToolStrip controls to show the panel:

  var hostTool = new ToolStripControlHost(panel) {    Padding = Padding.Empty,    Margin = Padding.Empty  };  var downButton = new ToolStripDropDownButton("Panel Menu") {    Alignment = ToolStripItemAlignment.Right,    DisplayStyle = ToolStripItemDisplayStyle.Text,    DropDownDirection = ToolStripDropDownDirection.BelowLeft,  };  ((ToolStripDropDownMenu)downButton.DropDown).ShowCheckMargin = false;  ((ToolStripDropDownMenu)downButton.DropDown).ShowImageMargin = false;  downButton.DropDown.AutoSize = false;  downButton.DropDown.Size = new Size(panel.Width + 12, panel.Height + 4);  downButton.DropDown.Items.Add(hostTool);  var tool = new ToolStrip();  tool.Items.Add(downButton);  this.Controls.Add(tool);

Result:

enter image description here


1down voteaccepted

Assuming WinForms, you can use a ToolStripControlHost to hold a Panel or a UserControl:

The control to show in the pop-up:

var panel = new Panel() {  BackColor = Color.White,  MinimumSize = new Size(150, 72),  Size = MinimumSize,     };panel.Paint += (s, e) => {  TextRenderer.DrawText(e.Graphics, "Pop-up Panel",  SystemFonts.DefaultFont, panel.ClientRectangle,  Color.Black, Color.Empty,  TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter);};

The ToolStrip controls to show the panel:

  var hostTool = new ToolStripControlHost(panel) {    Padding = Padding.Empty,    Margin = Padding.Empty  };  var downButton = new ToolStripDropDownButton("Panel Menu") {    Alignment = ToolStripItemAlignment.Right,    DisplayStyle = ToolStripItemDisplayStyle.Text,    DropDownDirection = ToolStripDropDownDirection.BelowLeft,  };  ((ToolStripDropDownMenu)downButton.DropDown).ShowCheckMargin = false;  ((ToolStripDropDownMenu)downButton.DropDown).ShowImageMargin = false;  downButton.DropDown.AutoSize = false;  downButton.DropDown.Size = new Size(panel.Width + 12, panel.Height + 4);  downButton.DropDown.Items.Add(hostTool);  var tool = new ToolStrip();  tool.Items.Add(downButton);  this.Controls.Add(tool);

Result:

enter image description here

0 0
原创粉丝点击