本文为你讲解了C# Button下拉菜单实现的思路,步骤及代码!笔者讲述的很清楚,很有条理,实用性很强的。主要的思路还是在于要把ContextMenuStrip控件实例与按钮关联,并取消按钮的右击事件。

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站制作、成都做网站、东港网络推广、重庆小程序开发、东港网络营销、东港企业策划、东港品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供东港建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
C# Button实现下拉菜单为实现这个功能, 花费的时间太长了, 觉得本人真够笨. 回过头来看, 其实很简单的东西!
在项目中,要用到按钮实现下拉菜单的功能,而且是在MDI窗体中。当菜单的显示范畴超出MDI窗体的工做区时,就要换另一显示方式,不至于显示混乱。如图:
实现C# Button下拉菜单
实现C# Button下拉菜单
(发觉一问题,如果把Form1拉到像Form3的大小,还会出现图一的情况。客户没这么邪吧)
C# Button下拉菜单实现思路:
1、要把ContextMenuStrip控件实例与按钮关联
2、取得MDI工做区的大小
3、取消按钮的右击事件(因为与ContextMenuStrip相关系的控件右键都会响应且显示)
4、鼠标单击时设置菜单显示位置
C# Button下拉菜单实现步骤:
1、创建用户控件,且用户控件承继自Button类
2、定义ContextMenuStrip对象
3、定义显示ContextMenuStrip对象立标point
4、重写按钮单击事件和ContextMenuStrip属性(设置与之关联的ContextMenuStrip实例用到),还有重写鼠标右击事件,使其不响应任何操做
C# Button下拉菜单代码:
- ///
 - /// 说明: 使用此Button时要设置ContextMenuStrip属性值
 - /// 单击些Button的Click事件要传入所在工做区的宽高
 - /// 如果没有所需的属性值,则如平时所使用的Button一至
 - /// 使用例子:
 - /// DropButton.WorkSizeX =
 
this.MdiParent.ClientRectangle.Width;- /// DropButton.WorkSizeY =
 
this.MdiParent.ClientRectangle.Height;- /// 应用:
 - /// 创建人: lrj
 - /// 创建日期:2008-05-22
 - /// 修改人:
 - /// 修改日期:
 - ///
 - public partial class DropButton : Button
 - {
 - private ContextMenuStrip contextMenuStrip;
 - private Point point; //立标
 - private int x = 0; //立标x
 - private int y = 0; //立标y
 - private int workSize_x;//工做区x
 - private int workSize_y;//工做区y
 - public DropButton()
 - {
 - InitializeComponent();
 - x = this.Size.Width ;
 - y = 0;
 - }
 - ///
 - /// 工做区的完
 - ///
 - public int WorkSizeX
 - {
 - get { return workSize_x; }
 - set { workSize_x = value; }
 - }
 - ///
 - /// 工做区的高
 - ///
 - public int WorkSizeY
 - {
 - get { return workSize_y; }
 - set { workSize_y = value - 55; }
 - }
 - ///
 - /// ContextMenuStrip菜单
 - ///
 - public override ContextMenuStrip ContextMenuStrip
 - {
 - get { return contextMenuStrip; }
 - set
 - {
 - if (contextMenuStrip != null)
 - {
 - contextMenuStrip = value;
 - }
 - }
 - }
 - //
 - //重写的单击事件
 - //
 - protected override void OnClick(EventArgs e)
 - {
 - base.OnClick(e);
 - //菜单在工做区离边框的宽高
 - int _x = this.Parent.Location.X + this.Location.X +
 
this.Size.Width + contextMenuStrip.Size.Width;- int _y = this.Parent.Location.Y + this.Location.Y +
 
contextMenuStrip.Size.Height ;- if
 - (_x < WorkSizeX - 8)
 - {
 - x = this.Size.Width;
 - }
 - else
 - {
 - x = 0 - contextMenuStrip.Size.Width;
 - }
 - if
 - (_y < WorkSizeY)
 - {
 - y = 0;
 - }
 - else
 - {
 - y = 0 - contextMenuStrip.Size.Height + this.Size.Height;
 - }
 - point =
 - new Point(x, y);
 - contextMenuStrip.Show(this, point);
 - }
 - //
 - //使鼠标右键失效
 - //
 - protected override void OnMouseDown(MouseEventArgs mevent)
 - {
 - base.OnMouseDown(mevent);
 - if (mevent.Button.ToString() != "Right")
 - {
 - }
 - }
 - }
 
以上讲述了实现C# Button下拉菜单的思路、步骤及代码,希望能给大家带来帮助。
                网站题目:分享如何用C#Button实现下拉菜单
                
                网页地址:http://www.csdahua.cn/qtweb/news4/251504.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网