在開發應用程序時,我們常常需要使用到彈出式菜單。有時候,我們需要用戶在單擊某個控件時,實現這一功能。
.NET為我們提供了這樣一個控件ContextMenuStrip,它可以和其他控件進行綁定,當用戶單擊該綁定控件時,就彈出對應的菜單。
但是這樣做有一個問題,ContextMenuStrip的觸發條件是與其綁定的控件被右鍵單擊時。
如果一個應用程序所有的界面操作都是通過左鍵單擊或雙擊完成的,突然某個控件需要用戶改用右鍵單擊。這種情況難免讓人有些不爽。
因此有沒有一種方法能通過左鍵單擊來觸發彈出式菜單呢?答案當然是肯定的。下面我們來說說這個方法:
private void btnMenu_Click(object sender, EventArgs e)
{
// 參數一為被綁定的控件
// 參數二為彈出式菜單的顯示位置(0,0與被綁定控件的原點重合)
ctxMenu.Show(btnMenu, new Point(0, btnMenu.Height + 5));
}
備注: 當然這個代碼還不是十分的完美,因為現在不論是單擊左鍵還是右鍵都會顯示菜單,大家可以把代碼寫到控件的鼠標事件中,並對左右鍵單擊作出判斷來解決這個問題。