winform datagridview添加右鍵菜單

添加datagridview的CellMouseClick事件,建議使用第一種方法

方法一:

private void dgvBala_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
 {
            if (e.Button == System.Windows.Forms.MouseButtons.Right && e.ColumnIndex > -1 && e.RowIndex > -1)  //點擊的是鼠標右鍵,並且不是表頭
            {
                //右鍵選中單元格
                this.dgvBala.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = true;
                this.contextMenuStrip1.Show(MousePosition.X, MousePosition.Y); //MousePosition.X, MousePosition.Y 是爲了讓菜單在所選行的位置顯示

            }

}

 

方法二:

設置datagridview的ContxtMenuStrip屬性,改成contextMenuStrip的name

這個方法的弊端是:點擊datagridview的表頭,也會顯示出右鍵菜單;假設選中第一行數據,然後可以在第二行等其他行右鍵,但是還是第一行是選中狀態,讓人產生歧義

private void dgvBala_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
 {
            if (e.Button == System.Windows.Forms.MouseButtons.Right && e.ColumnIndex > -1 && e.RowIndex > -1)  //點擊的是鼠標右鍵,  e.ColumnIndex > -1 && e.RowIndex > -1        不起作用

         {
                //右鍵選中單元格
                this.dgvBala.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = true;
                this.contextMenuStrip1.Show();            

          }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章