DevExpress GridView 新增和設定右鍵選單

衣舞晨風發表於2015-06-02

作者:jiankunking 出處:http://blog.csdn.net/jiankunking

右鍵選單肯定是GridView中經常要使用的一個功能。本文主要描述三個方面:

1、如何在GridView中新增右鍵選單
2、如何設定選單是否可用(enable)

3、如何獲取右鍵點選事件

一、新增右鍵選單
1.在VS工具箱中的“選單和工具欄”找到ContextMenuStrip控制元件,雙擊新增。


2.點選ContextMenuStrip右上方的小三角形,開啟編輯項,可以新增選單項。




3.選擇gridControl(注意這裡不是gridView的屬性),在屬性中可以找到ContextMenuStrip屬性,設定成剛新增ContextMenuStrip。


這樣的話,執行起來右擊表格就可以看到右鍵選單了。

如下圖:


二、是否可用設定
在不同情況下,例如選中行的個數以及內容的不同,右鍵選單的選單項是否可用需要作出判斷。
在單選時,“編輯”(itemOpen)、“刪除”(itemDelete)選單項都可用,多選時“編輯”不可用,“刪除”可用,沒有選擇時“編輯”、“刪除”都不可用。這裡需要用到gridView的PopupMenuShowing這個事件。也就是在選單出現之前使用者點選右鍵之後,來判斷一下選擇了幾行,從而決定選單項是否可用。

具體程式碼如下:

 private void gridView1_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e)
        {
            //獲取選擇的行數
            int intselect = gridView1.SelectedRowsCount;
            MenuItemEdit.Enabled = false;
            MenuItemDelete.Enabled = false;
            if (intselect == 1)
            {
                MenuItemEdit.Enabled = true;
                MenuItemDelete.Enabled = true;
            }
            else if (intselect > 1)
            {
                MenuItemEdit.Enabled = false;
                MenuItemDelete.Enabled = false;
            }
        }

三、如何獲取右鍵點選事件

       #region 右鍵單擊事件
        private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
		    //根據ContextMenuStrip Item 的name來判斷
            if ((e.ClickedItem).Name == "MenuItemEdit")
            {
               
            }
            else if ((e.ClickedItem).Name == "MenuItemDelete")
            {
                
            }
        }
        #endregion

 


相關文章