在C# Winform中,可以使用以下步骤来实现DataGridView右键删除行:
在DataGridView控件的ContextMenuStrip属性中设置一个右键菜单。
在右键菜单中添加一个“删除”菜单项。
为“删除”菜单项添加一个Click事件处理程序。
以下是使用上述步骤实现DataGridView右键删除行的示例代码:
- // 设置DataGridView的ContextMenuStrip属性
- dataGridView1.ContextMenuStrip = contextMenuStrip1;
-
- // 添加“删除”菜单项
- contextMenuStrip1.Items.Add("删除");
-
- // 为“删除”菜单项添加Click事件处理程序
- contextMenuStrip1.Items["删除"].Click += new EventHandler(dataGridView1_DeleteRow);
-
- // 删除行
- private void dataGridView1_DeleteRow(object sender, EventArgs e)
- {
- // 获取选中的行
- DataGridViewRow selectedRow = dataGridView1.SelectedRows[0];
-
- // 删除行
- dataGridView1.Rows.Remove(selectedRow);
- }
-
当用户在DataGridView中右键单击一行时,会触发“删除”菜单项的Click事件。在Click事件处理程序中,可以获取选中的行,然后删除该行。
以下是“删除”菜单项的Click事件处理程序的简化版本:
- private void dataGridView1_DeleteRow(object sender, EventArgs e)
- {
- // 删除选中的行
- dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
- }
-
这种方法将删除选中的行。如果需要删除所有选中的行,可以使用以下代码:
- private void dataGridView1_DeleteRow(object sender, EventArgs e)
- {
- // 删除所有选中的行
- foreach (DataGridViewRow row in dataGridView1.SelectedRows)
- {
- dataGridView1.Rows.Remove(row);
- }
- }