先拉一個contextMenuStrip進來

然後把某個你要出現選單的控制項像是Form的一個屬性叫做

contextMenuStrip

去選它,然後選拉進來的contextMenuStrip控制項的名字

像是contextMenuStrip1

此時就可以在這個Form上按右鍵顯示選單

要加選單的內容的話就去點contextMenuStrip1就可

直接加Item進去並命名各個Item

如果把所有的Item的Visible都設成false的話選單就不會顯示了

 

另外:

如果Form上有多個可點擊的區塊且只在區塊顯示右鍵選單的話我是做了兩個事件來做

一個是Click事件,一個是MouseDown事件

Click去偵測是否按了左鍵並做左鍵按下去的內容

在Click事件

 if (((MouseEventArgs)e).Button == MouseButtons.Left)
{
                  要做的事情...;

                  //Click事件的e要轉型成MouseEventArgs才能判斷喔

}

在MouseDown事件

 if (在某個區塊的話)
{


             if (e.Button == MouseButtons.Right)
             {     //先關掉舊的選單的物件
                    Form1.ContextMenuStrip.Close();

                    Item_Print.Visible = true;

                    //在全域變數的地方去宣告個private object LV;

                    //然後把按下去瞬間的sender物件給LV,之後就可以在選單裡面Item的事件用了
                    LV = sender;
             }
           

else
{

     //不在某個區塊就不秀出選單的Item了
     Item_Print.Visible = false;

}

 

另外

Click和MouseDown事件不同的地方在於

Click會視控制項的不同而有可能是滑鼠左鍵或滑鼠右鍵

但觸發時是滑鼠按鈕按下去"放開後"

而MouseDown事件是滑鼠左右鍵都會觸發

觸發時機是滑鼠按下去的"瞬間"(還沒放開滑鼠就已經觸發了)

 

welkingunther 發表在 痞客邦 PIXNET 留言(0) 人氣()