C#中datagridview右键弹出事件
时间: 2023-07-12 18:16:42 浏览: 66
在C#中,为DataGridView控件添加右键菜单弹出事件可以通过以下方式实现:
1. 在设计视图中选择DataGridView控件,然后在属性窗口中找到“ContextMenuStrip”属性,点击右侧的“...”按钮创建一个新的ContextMenuStrip控件;
2. 在ContextMenuStrip控件中添加需要的菜单项,可以设置每个菜单项的名称、图标、点击事件等属性;
3. 在DataGridView控件上注册一个ContextMenuStrip控件,以便在右键单击时弹出菜单。可以使用DataGridView的ContextMenuStrip属性或者ContextMenuStrip控件的Show方法实现。
以下是一个示例代码,实现右键单击DataGridView的行时弹出菜单,并在菜单项点击时显示当前选中行的数据:
```
// 创建一个ContextMenuStrip控件,添加需要的菜单项
ContextMenuStrip contextMenuStrip = new ContextMenuStrip();
ToolStripMenuItem toolStripMenuItem = new ToolStripMenuItem("显示选中行数据");
toolStripMenuItem.Click += (sender, e) =>
{
foreach (DataGridViewRow row in dataGridView.SelectedRows)
{
string rowData = "";
foreach (DataGridViewCell cell in row.Cells)
{
rowData += cell.Value.ToString() + "\t";
}
MessageBox.Show(rowData);
}
};
contextMenuStrip.Items.Add(toolStripMenuItem);
// 在DataGridView上注册ContextMenuStrip控件
dataGridView.ContextMenuStrip = contextMenuStrip;
// DataGridView的CellMouseClick事件中判断是否是右键单击
private void dataGridView_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
// 显示ContextMenu
dataGridView.CurrentCell = dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex];
dataGridView.ContextMenuStrip.Show(MousePosition);
}
}
```
注意,需要在DataGridView的CellMouseClick事件中判断是否是右键单击,如果是则设置当前单元格为右键单击的单元格,并显示ContextMenu。同时,在ContextMenu的菜单项点击事件中可以获取当前选中行的数据并进行处理。