1.实现当鼠标移到数据行时,右键删除数据。
步骤1.先定义变量CurrentRowIndex来存储鼠标经过的行数。
如下:
View Code1 public partial class FormTest : Form
2 {
3 private bool isLoad { get; set; }
4 /// <summary>
5 /// 当前行号
6 /// </summary>
7 private int CurrentRowIndex { get; set; }
2 {
3 private bool isLoad { get; set; }
4 /// <summary>
5 /// 当前行号
6 /// </summary>
7 private int CurrentRowIndex { get; set; }
2.为该变量赋值。使用CellMouseEnter
代码如下:
View Code
1 private void dataGridView1_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
2 {
3 var dgv = (DataGridView)sender;
4 CurrentRowIndex = e.RowIndex;
5 CurrentColumnIndex = e.ColumnIndex;
6
7 }
2 {
3 var dgv = (DataGridView)sender;
4 CurrentRowIndex = e.RowIndex;
5 CurrentColumnIndex = e.ColumnIndex;
6
7 }
3.右键鼠标,然后点击删除,
代码如下:
View Code1 private void removeToolStripMenuItem_Click(object sender, EventArgs e)
2 {
3 // DataGridViewRowCollection rowCollection = new DataGridViewRowCollection(dataGridView1);
4 DataGridViewRow row = dataGridView1.Rows[CurrentRowIndex];
5 dataGridView1.Rows.Remove(row);
6 //防止滚动条滚到不是想要到的地方。
7 dataGridView1.CurrentCell = dataGridView1[0, CurrentRowIndex];
8
9 }
2 {
3 // DataGridViewRowCollection rowCollection = new DataGridViewRowCollection(dataGridView1);
4 DataGridViewRow row = dataGridView1.Rows[CurrentRowIndex];
5 dataGridView1.Rows.Remove(row);
6 //防止滚动条滚到不是想要到的地方。
7 dataGridView1.CurrentCell = dataGridView1[0, CurrentRowIndex];
8
9 }
4.删除行是的条件判断 处理。
4.1当按下del键时,执行如下函数
1 private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
2 {
3 // 删除前的用户确认。
4 if (MessageBox.Show("确认要删除该行数据吗?", "删除确认",
5 MessageBoxButtons.OKCancel,
6 MessageBoxIcon.Question,
7 MessageBoxDefaultButton.Button2) != DialogResult.OK)
8 {
9 // 如果不是 OK,则取消。
10 e.Cancel = true;
11 }
12 }
2 {
3 // 删除前的用户确认。
4 if (MessageBox.Show("确认要删除该行数据吗?", "删除确认",
5 MessageBoxButtons.OKCancel,
6 MessageBoxIcon.Question,
7 MessageBoxDefaultButton.Button2) != DialogResult.OK)
8 {
9 // 如果不是 OK,则取消。
10 e.Cancel = true;
11 }
12 }
4.2若按鼠标右键删除时,可执行如下函数。
View Code
1 private void dataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
2 {
3 if (!isLoad)
4 {
5 if (MessageBox.Show(
6 "确定要删除数据吗?",
7 "删除确认",
8 MessageBoxButtons.OKCancel,
9 MessageBoxIcon.Question,
10 MessageBoxDefaultButton.Button2) == DialogResult.OK
11 )
12 {
13 int removeIndex = e.RowIndex;
14 // string removeColumnOneText = Convert.ToString(dataGridView1[0,e.RowIndex].Value);
15 MessageBox.Show("你的数据被删除了:" + removeIndex);
16 }
17
18 }
19
20 }
2 {
3 if (!isLoad)
4 {
5 if (MessageBox.Show(
6 "确定要删除数据吗?",
7 "删除确认",
8 MessageBoxButtons.OKCancel,
9 MessageBoxIcon.Question,
10 MessageBoxDefaultButton.Button2) == DialogResult.OK
11 )
12 {
13 int removeIndex = e.RowIndex;
14 // string removeColumnOneText = Convert.ToString(dataGridView1[0,e.RowIndex].Value);
15 MessageBox.Show("你的数据被删除了:" + removeIndex);
16 }
17
18 }
19
20 }
来源:https://www.cnblogs.com/85538649/archive/2011/09/06/2168189.html