日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
分享如何用C#Button實現(xiàn)下拉菜單

本文為你講解了C# Button下拉菜單實現(xiàn)的思路,步驟及代碼!筆者講述的很清楚,很有條理,實用性很強的。主要的思路還是在于要把ContextMenuStrip控件實例與按鈕關(guān)聯(lián),并取消按鈕的右擊事件。

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、成都做網(wǎng)站、東港網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、東港網(wǎng)絡(luò)營銷、東港企業(yè)策劃、東港品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供東港建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com

C# Button實現(xiàn)下拉菜單為實現(xiàn)這個功能, 花費的時間太長了, 覺得本人真夠笨. 回過頭來看, 其實很簡單的東西!

在項目中,要用到按鈕實現(xiàn)下拉菜單的功能,而且是在MDI窗體中。當菜單的顯示范疇超出MDI窗體的工做區(qū)時,就要換另一顯示方式,不至于顯示混亂。如圖:

實現(xiàn)C# Button下拉菜單

實現(xiàn)C# Button下拉菜單

(發(fā)覺一問題,如果把Form1拉到像Form3的大小,還會出現(xiàn)圖一的情況??蛻魶]這么邪吧)

C# Button下拉菜單實現(xiàn)思路:

1、要把ContextMenuStrip控件實例與按鈕關(guān)聯(lián)

2、取得MDI工做區(qū)的大小

3、取消按鈕的右擊事件(因為與ContextMenuStrip相關(guān)系的控件右鍵都會響應(yīng)且顯示)

4、鼠標單擊時設(shè)置菜單顯示位置

C# Button下拉菜單實現(xiàn)步驟:

1、創(chuàng)建用戶控件,且用戶控件承繼自Button類

2、定義ContextMenuStrip對象

3、定義顯示ContextMenuStrip對象立標point

4、重寫按鈕單擊事件和ContextMenuStrip屬性(設(shè)置與之關(guān)聯(lián)的ContextMenuStrip實例用到),還有重寫鼠標右擊事件,使其不響應(yīng)任何操做

C# Button下拉菜單代碼:

 
 
 
 
  1.    /// 
  2.        /// 說明: 使用此Button時要設(shè)置ContextMenuStrip屬性值
  3.       ///       單擊些Button的Click事件要傳入所在工做區(qū)的寬高
  4.        ///       如果沒有所需的屬性值,則如平時所使用的Button一至
  5.        /// 使用例子:
  6.       ///       DropButton.WorkSizeX = 
    this.MdiParent.ClientRectangle.Width;
  7.        ///       DropButton.WorkSizeY = 
    this.MdiParent.ClientRectangle.Height;
  8.        /// 應(yīng)用:
  9.       /// 創(chuàng)建人: lrj
  10.     /// 創(chuàng)建日期:2008-05-22
  11.      /// 修改人:
  12.      /// 修改日期:
  13.      ///
  14.  
  15.      public partial class DropButton : Button
  16.      {
  17.          private ContextMenuStrip contextMenuStrip;
  18.          private Point point;     //立標
  19.          private int x = 0;     //立標x
  20.          private int y = 0;     //立標y
  21.          private int workSize_x;//工做區(qū)x  
  22.          private int workSize_y;//工做區(qū)y
  23.          public DropButton()
  24.         {
  25.              InitializeComponent();
  26.             x = this.Size.Width ;
  27.              y = 0;
  28.          }
  29.          /// 
  30.          /// 工做區(qū)的完
  31.          ///
  32.  
  33.          public int WorkSizeX
  34.          {
  35.              get { return workSize_x; }
  36.              set { workSize_x = value; }
  37.          }
  38.          /// 
  39.          /// 工做區(qū)的高
  40.          ///
  41.  
  42.          public int WorkSizeY
  43.          {
  44.              get { return workSize_y; }
  45.              set { workSize_y = value - 55; }
  46.          }
  47.     ///
  48.           
  49.          /// ContextMenuStrip菜單
  50.          ///
  51.  
  52.          public override ContextMenuStrip ContextMenuStrip
  53.          {
  54.              get { return contextMenuStrip; }
  55.              set 
  56.              {
  57.                  if (contextMenuStrip != null)
  58.                  {
  59.                      contextMenuStrip = value;
  60.                  }
  61.              }
  62.         }  
  63.          //
  64.          //重寫的單擊事件
  65.          //
  66.          protected override void OnClick(EventArgs e)
  67.          {
  68.              base.OnClick(e);
  69.              //菜單在工做區(qū)離邊框的寬高
  70.              int _x = this.Parent.Location.X + this.Location.X +
     this.Size.Width + contextMenuStrip.Size.Width;
  71.              int _y = this.Parent.Location.Y + this.Location.Y  + 
    contextMenuStrip.Size.Height ;
  72.     if
  73.              (_x < WorkSizeX - 8)
  74.              {
  75.                  x = this.Size.Width;
  76.              }
  77.              else
  78.              {
  79.                  x = 0 - contextMenuStrip.Size.Width;
  80.              }
  81.     if
  82.              (_y < WorkSizeY)
  83.              {
  84.                  y = 0;
  85.              }
  86.              else
  87.              {
  88.                  y = 0 - contextMenuStrip.Size.Height + this.Size.Height;
  89.              }
  90.      point =
  91.             new Point(x, y);
  92.              contextMenuStrip.Show(this, point);
  93.          }
  94.          //
  95.          //使鼠標右鍵失效
  96.          //
  97.          protected override void OnMouseDown(MouseEventArgs mevent)
  98.         {
  99.             base.OnMouseDown(mevent);
  100.              if (mevent.Button.ToString() != "Right")
  101.              {
  102.             }
  103.          }
  104.      }

以上講述了實現(xiàn)C# Button下拉菜單的思路、步驟及代碼,希望能給大家?guī)韼椭?/p>
本文題目:分享如何用C#Button實現(xiàn)下拉菜單
新聞來源:http://m.5511xx.com/article/djoccci.html