【WinForm】DataGridView鼠标右键点击行显示右键菜单

记录学习过程

创建日期:2019-04-13

DataGridView鼠标右键点击行显示右键菜单

方法

/// 
/// 扩展方法
/// 
public static class Extensions
{
	/// 
	/// DataGridView鼠标右键点击行显示右键菜单
	/// 
	public static void SetRightButtonDownShowContextMenuStrip(this DataGridView dgv, ContextMenuStrip cms, DataGridViewCellMouseEventArgs e)
	{
		//点击的是鼠标右键 且 点击行属于DataGridView的单元格的行(标题行的索引为-1)
		if (e.Button == MouseButtons.Right && e.RowIndex >= 0)
		{
		    if (!dgv.Rows[e.RowIndex].Selected)//该行没有被选中
		    {
		        dgv.ClearSelection();//清除当前选中的行
		        dgv.Rows[e.RowIndex].Selected = true;//设置选中行
		    }
		
		    cms.Show(Control.MousePosition.X, Control.MousePosition.Y);//显示右键菜单
		}
	}
}

调用

private void dgv_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
    dgv.SetRightButtonDownShowContextMenuStrip(cms, e);
}

你可能感兴趣的:(WinForm)