c# 在按钮上添加菜单
Add a Menu on the Button in c#
我想创建一个按钮,单击该按钮会显示一个菜单。我希望它看起来像这样(侧面有一个箭头):
我在 onClick 事件上尝试了以下代码:
Button btnSender = (Button)sender;
Point ptLowerLeft = new Point(0, btnSender.Height);
ptLowerLeft = btnSender.PointToScreen(ptLowerLeft);
contextMenuStrip1.Show(ptLowerLeft);
但输出是这样的:
我怎样才能创建一个右边有箭头的按钮,单击时菜单会显示在它旁边?
你为什么不使用 menu 而不是 button 或者你可以添加一个带有小箭头的背景图像,你可以在悬停或点击按钮
非常简短的回答是,我认为您混淆了宽度和高度。只需交换线路
Point ptLowerLeft = new Point(0, btnSender.Height);
和
Point ptUpperRight = new Point(btnSender.Width, 0);
但是,通常还有更多工作要做。特别是,根据按钮的位置,上下文菜单可能会显示在屏幕的可见区域之外。我认为最简单的解决方案是使用工具栏控件。据我所知,有一个控件支持这种行为。
要添加到 Georg 的答案:要添加图像,您只需写:
button1.Image = Image.FromFile(yourImageFile); // or a resource etc..
button1.ImageAlign = ContentAlignment.MiddleRight;
button1.TextAlign = ContentAlignment.MiddleLeft;
我想创建一个按钮,单击该按钮会显示一个菜单。我希望它看起来像这样(侧面有一个箭头):
我在 onClick 事件上尝试了以下代码:
Button btnSender = (Button)sender;
Point ptLowerLeft = new Point(0, btnSender.Height);
ptLowerLeft = btnSender.PointToScreen(ptLowerLeft);
contextMenuStrip1.Show(ptLowerLeft);
但输出是这样的:
我怎样才能创建一个右边有箭头的按钮,单击时菜单会显示在它旁边?
你为什么不使用 menu 而不是 button 或者你可以添加一个带有小箭头的背景图像,你可以在悬停或点击按钮
非常简短的回答是,我认为您混淆了宽度和高度。只需交换线路
Point ptLowerLeft = new Point(0, btnSender.Height);
和
Point ptUpperRight = new Point(btnSender.Width, 0);
但是,通常还有更多工作要做。特别是,根据按钮的位置,上下文菜单可能会显示在屏幕的可见区域之外。我认为最简单的解决方案是使用工具栏控件。据我所知,有一个控件支持这种行为。
要添加到 Georg 的答案:要添加图像,您只需写:
button1.Image = Image.FromFile(yourImageFile); // or a resource etc..
button1.ImageAlign = ContentAlignment.MiddleRight;
button1.TextAlign = ContentAlignment.MiddleLeft;