C#中怎么利用Button實現(xiàn)一個下拉菜單,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
建鄴網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)于2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
在項目中,要用到按鈕實現(xiàn)下拉菜單的功能,而且是在MDI窗體中。當(dāng)菜單的顯示范疇超出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、鼠標(biāo)單擊時設(shè)置菜單顯示位置
C# Button下拉菜單實現(xiàn)步驟:
1、創(chuàng)建用戶控件,且用戶控件承繼自Button類
2、定義ContextMenuStrip對象
3、定義顯示ContextMenuStrip對象立標(biāo)point
4、重寫按鈕單擊事件和ContextMenuStrip屬性(設(shè)置與之關(guān)聯(lián)的ContextMenuStrip實例用到),還有重寫鼠標(biāo)右擊事件,使其不響應(yīng)任何操做
C# Button下拉菜單代碼:
///
/// 說明: 使用此Button時要設(shè)置ContextMenuStrip屬性值
/// 單擊些Button的Click事件要傳入所在工做區(qū)的寬高
/// 如果沒有所需的屬性值,則如平時所使用的Button一至
/// 使用例子:
/// DropButton.WorkSizeX =
this.MdiParent.ClientRectangle.Width;/// DropButton.WorkSizeY =
this.MdiParent.ClientRectangle.Height;/// 應(yīng)用:
/// 創(chuàng)建人: lrj
/// 創(chuàng)建日期:2008-05-22
/// 修改人:
/// 修改日期:
///
public partial class DropButton : Button
{
private ContextMenuStrip contextMenuStrip;
private Point point; //立標(biāo)
private int x = 0; //立標(biāo)x
private int y = 0; //立標(biāo)y
private int workSize_x;//工做區(qū)x
private int workSize_y;//工做區(qū)y
public DropButton()
{
InitializeComponent();
x = this.Size.Width ;
y = 0;
}
///
/// 工做區(qū)的完
///
public int WorkSizeX
{
get { return workSize_x; }
set { workSize_x = value; }
}
///
/// 工做區(qū)的高
///
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);
//菜單在工做區(qū)離邊框的寬高
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);
}
//
//使鼠標(biāo)右鍵失效
//
protected override void OnMouseDown(MouseEventArgs mevent)
{
base.OnMouseDown(mevent);
if (mevent.Button.ToString() != "Right")
{
}
}
}
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
分享題目:C#中怎么利用Button實現(xiàn)一個下拉菜單
分享鏈接:http://muchs.cn/article40/ishcho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、服務(wù)器托管、外貿(mào)建站、、商城網(wǎng)站、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)