广告
返回顶部
首页 > 资讯 > 精选 >C#中怎么利用Button实现一个下拉菜单
  • 219
分享到

C#中怎么利用Button实现一个下拉菜单

2023-06-17 22:06:10 219人浏览 安东尼
摘要

C#中怎么利用Button实现一个下拉菜单,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在项目中,要用到按钮实现下拉菜单的功能,而且是在MDI窗体中。当菜单的显

C#中怎么利用Button实现一个下拉菜单,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

项目中,要用到按钮实现下拉菜单的功能,而且是在MDI窗体中。当菜单的显示范畴超出MDI窗体的工做区时,就要换另一显示方式,不至于显示混乱。如图:

C#中怎么利用Button实现一个下拉菜单
实现C# Button下拉菜单

C#中怎么利用Button实现一个下拉菜单
实现C# Button下拉菜单

(发觉一问题,如果把FORM1拉到像Form3的大小,还会出现图一的情况。客户没这么邪吧)

C# Button下拉菜单实现思路:

要把ContextMenuStrip控件实例与按钮关联

取得MDI工做区的大小

取消按钮的右击事件(因为与ContextMenuStrip相关系的控件右键都会响应且显示)

鼠标单击时设置菜单显示位置

C# Button下拉菜单实现步骤:

创建用户控件,且用户控件承继自Button类

定义ContextMenuStrip对象

定义显示ContextMenuStrip对象立标point

重写按钮单击事件和ContextMenuStrip属性(设置与之关联的ContextMenuStrip实例用到),还有重写鼠标右击事件,使其不响应任何操做

C# Button下拉菜单代码:

  1.    /// 

     

  2.        /// 说明: 使用此Button时要设置ContextMenuStrip属性值  

  3.       ///       单击些Button的Click事件要传入所在工做区的宽高  

  4.        ///       如果没有所需的属性值,则如平时所使用的Button一至  

  5.        /// 使用例子:  

  6.       ///       DropButton.WorkSizeX = 
    this.MdiParent.ClientRectangle.Width;  

  7.        ///       DropButton.WorkSizeY = 
    this.MdiParent.ClientRectangle.Height;  

  8.        /// 应用:  

  9.       /// 创建人: lrj  

  10.     /// 创建日期:2008-05-22  

  11.      /// 修改人:  

  12.      /// 修改日期:  

  13.      ///  

  14.      public partial class DropButton : Button  

  15.      {  

  16.          private ContextMenuStrip contextMenuStrip;  

  17.          private Point point;     //立标  

  18.          private int x = 0;     //立标x  

  19.          private int y = 0;     //立标y  

  20.          private int workSize_x;//工做区x    

  21.          private int workSize_y;//工做区y  

  22.          public DropButton()  

  23.         {  

  24.              InitializeComponent();  

  25.             x = this.Size.Width ;  

  26.              y = 0;  

  27.          }  

  28.          /// 

     

  29.          /// 工做区的完  

  30.          ///  

  31.          public int WorkSizeX  

  32.          {  

  33.              get { return workSize_x; }  

  34.              set { workSize_x = value; }  

  35.          }  

  36.          /// 

     

  37.          /// 工做区的高  

  38.          ///  

  39.          public int WorkSizeY  

  40.          {  

  41.              get { return workSize_y; }  

  42.              set { workSize_y = value - 55; }  

  43.          }  

  44.           ///

  45.           

     

  46.          /// ContextMenuStrip菜单  

  47.          ///  

  48.          public override ContextMenuStrip ContextMenuStrip  

  49.          {  

  50.              get { return contextMenuStrip; }  

  51.              set   

  52.              {  

  53.                  if (contextMenuStrip != null)  

  54.                  {  

  55.                      contextMenuStrip = value;  

  56.                  }  

  57.              }  

  58.         }   

  59.          //  

  60.          //重写的单击事件  

  61.          //  

  62.          protected override void OnClick(EventArgs e)  

  63.          {  

  64.              base.OnClick(e);  

  65.              //菜单在工做区离边框的宽高  

  66.              int _x = this.Parent.Location.X + this.Location.X +
    this.Size.Width + contextMenuStrip.Size.Width;  

  67.              int _y = this.Parent.Location.Y + this.Location.Y  + 
    contextMenuStrip.Size.Height ;  

  68.              if

  69.              (_x < WorkSizeX - 8)  

  70.              {  

  71.                  x = this.Size.Width;  

  72.              }  

  73.              else 

  74.              {  

  75.                  x = 0 - contextMenuStrip.Size.Width;  

  76.              }  

  77.              if 

  78.              (_y < WorkSizeY)  

  79.              {  

  80.                  y = 0;  

  81.              }  

  82.              else 

  83.              {  

  84.                  y = 0 - contextMenuStrip.Size.Height + this.Size.Height;  

  85.              }  

  86.               point =

  87.             new Point(x, y);  

  88.              contextMenuStrip.Show(this, point);  

  89.          }  

  90.          //  

  91.          //使鼠标右键失效  

  92.          //  

  93.          protected override void OnMouseDown(MouseEventArgs mevent)  

  94.         {  

  95.             base.OnMouseDown(mevent);  

  96.              if (mevent.Button.ToString() != "Right")  

  97.              {  

  98.             }  

  99.          }  

  100.      } 

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: C#中怎么利用Button实现一个下拉菜单

本文链接: https://www.lsjlt.com/news/293644.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#中怎么利用Button实现一个下拉菜单
    C#中怎么利用Button实现一个下拉菜单,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在项目中,要用到按钮实现下拉菜单的功能,而且是在MDI窗体中。当菜单的显...
    99+
    2023-06-17
  • css3中怎么实现一个下拉菜单效果
    css3中怎么实现一个下拉菜单效果,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先来看核心的HTML片断代码:<nav> &...
    99+
    2022-10-19
  • css中怎么实现一个三级下拉菜单
    今天就跟大家聊聊有关css中怎么实现一个三级下拉菜单,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。<!DOCTYPE html>...
    99+
    2022-10-19
  • css3中怎么实现一个垂直下拉动画菜单
    css3中怎么实现一个垂直下拉动画菜单,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。<nav>     &nb...
    99+
    2022-10-19
  • 使用CSS怎么实现一个导航栏和下拉菜单
    这篇文章将为大家详细讲解有关使用CSS怎么实现一个导航栏和下拉菜单,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、CSS导航栏(1)导航栏的作用熟练使用导航栏,对于网站排版非常重要,使用C...
    99+
    2023-06-08
  • 微信小程序中怎么实现一个下拉菜单效果
    这篇文章将为大家详细讲解有关微信小程序中怎么实现一个下拉菜单效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。//wcss     ...
    99+
    2022-10-19
  • 怎么在HTML5中实现一个输入框下拉菜单功能
    本篇文章为大家展示了怎么在HTML5中实现一个输入框下拉菜单功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。单选框代码<span>性别:</span>  ...
    99+
    2023-06-09
  • 怎么用css实现下拉菜单功能
    这篇文章主要讲解了“怎么用css实现下拉菜单功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用css实现下拉菜单功能”吧! ...
    99+
    2022-10-19
  • 怎么用CSS实现4级下拉菜单
    这篇文章主要介绍“怎么用CSS实现4级下拉菜单”,在日常操作中,相信很多人在怎么用CSS实现4级下拉菜单问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用CSS实现4级下拉...
    99+
    2022-10-19
  • 怎么用CSS3实现多功能下拉菜单
    这篇文章主要介绍“怎么用CSS3实现多功能下拉菜单”,在日常操作中,相信很多人在怎么用CSS3实现多功能下拉菜单问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用CSS3实...
    99+
    2022-10-19
  • 利用Android怎么实现一个底部菜单栏
    利用Android怎么实现一个底部菜单栏?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。今天我们封装一个底部的菜单栏,这个大多数的应用都会用到,因此我们来自定义,...
    99+
    2023-05-31
    android roi
  • C#中怎么利用WinForm控件实现一个下拉式属性编辑器
    这篇文章将为大家详细讲解有关C#中怎么利用WinForm控件实现一个下拉式属性编辑器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先我们要创建一个用于编辑属性的控件,在本系列文章的开始,我...
    99+
    2023-06-17
  • 如何在Android应用中利用DrawerLayout实现一个侧拉菜单栏功能
    如何在Android应用中利用DrawerLayout实现一个侧拉菜单栏功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。activity_main.xml<&#...
    99+
    2023-05-31
    android drawerlayout roi
  • 怎么用CSS实现三级下拉菜单效果
    这篇文章主要介绍“怎么用CSS实现三级下拉菜单效果”,在日常操作中,相信很多人在怎么用CSS实现三级下拉菜单效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用CSS实现...
    99+
    2022-10-19
  • 怎么用CSS实现二级下拉导航菜单
    这篇文章主要讲解了“怎么用CSS实现二级下拉导航菜单”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用CSS实现二级下拉导航菜单”吧!这是一款纯CSS菜单...
    99+
    2022-10-19
  • 利用bootstrap怎么实现一个下拉框搜索功能
    本篇文章为大家展示了利用bootstrap怎么实现一个下拉框搜索功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、第一个下拉框代码<div class="btn-gro...
    99+
    2023-05-31
    bootstrap strap
  • Vue中怎么利用枚举类型实现一个HTML下拉框
    今天就跟大家聊聊有关Vue中怎么利用枚举类型实现一个HTML下拉框,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。第一步: 编写下拉框需要的枚举类型&...
    99+
    2022-10-19
  • 怎么使用css3实现动画下拉菜单效果
    这篇文章给大家分享的是有关怎么使用css3实现动画下拉菜单效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。.site-navigation ul ul{min-width: 1...
    99+
    2022-10-19
  • 怎么使用HTML+CSS+JavaScript实现下拉菜单效果
    今天小编给大家分享一下怎么使用HTML+CSS+JavaScript实现下拉菜单效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-07-02
  • vue.js中怎么利用element-ui实现一个菜单树形结构
    这篇文章将为大家详细讲解有关vue.js中怎么利用element-ui实现一个菜单树形结构,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。后台返回的数据格式是...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作