控制WinForm中右鍵選單

2021-08-07 13:37:47 字數 740 閱讀 4363

方法一:給需要新增右鍵選單的控制項設定contextmenustrip屬性,如給datagridview1新增選單方法為: this.datagridview1.contextmenustrip = this.contextmenustrip1;

這樣做右鍵選單自動新增,也無需設定選單的位置,只要在控制項上單擊右鍵,即可在滑鼠處彈出選單

這樣做的缺點有兩個:第乙個,不能在控制項的指定位置彈出選單,因為有時候並不需要在控制項的所有位置都彈出,例如對於datagridview而言,可能僅僅需要在右鍵單擊列名的時候彈出選單;第二個,控制項的click等事件無法執行,右鍵單擊控制項,並沒有執行相應的事件函式而只是跳出選單,左鍵單擊事件可以執行,這在很多情況限制了用途,比如,需要跟據右鍵單擊處的值,彈出選單進行不同的操作,這時這種方法就無法滿足。

方法二:不要設定控制項的contextmenustrip屬性,而是在單擊右鍵時,show出選單,選單位置的調整是通過單擊時cursor的位置。例如,在右鍵單擊datagridview的列名時,獲得該列列名,並彈出選單,程式如下:

private void datagridview1_columnheadermouseclick(object sender, datagridviewcellmouseeventargs e)

這樣最大的好處是可以獲得右鍵單擊處的資訊。

方法三:

contextmenustrip2.show(mouseposition.x, mouseposition.y); 

在winform中新增普通右鍵選單

顯示水平滾動條 點選gridcontrol的run designer在彈出的對話方塊中選擇views,將右側屬性視窗中optionsview下的columnautowidth設定成false 可以選擇多行 點選gridcontrol的run designer在彈出的對話方塊中選擇views,將右側屬...

給Winform新增右鍵選單

最近用到dotnetbar的supertabcontrol,發現supertabitem木有右鍵選單,也不是繼承於control的,contextmenu屬性就沒法設定了,只好自己手動加了,不多廢話,直接上 吧。using system using system.drawing using syst...

Vue element控制滑鼠右鍵選單

1 在頁面元素繫結contextmenu事件 元素中使用 contextmenu.prevent.native openmenu event 繫結事件 template span size medium contextmenu.prevent.native openmenu event templa...