winform datagridview 通过右键菜单来删除数据行



1.实现当鼠标移到数据行时,右键删除数据。

 步骤1.先定义变量CurrentRowIndex来存储鼠标经过的行数。

如下:

ExpandedBlockStart.gif View Code
1     public   partial   class  FormTest : Form
2      {
3           private   bool  isLoad {  get set ; }
4           ///   <summary>
5           ///  当前行号
6           ///   </summary>
7           private   int  CurrentRowIndex {  get set ; }

 

 2.为该变量赋值。使用CellMouseEnter

代码如下:

 

ExpandedBlockStart.gif 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          }

 

 3.右键鼠标,然后点击删除,

代码如下:

ExpandedBlockStart.gif View Code
1    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          }

 

4.删除行是的条件判断 处理。

4.1当按下del键时,执行如下函数

  

ExpandedBlockStart.gif View Code
 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          }

 

 4.2若按鼠标右键删除时,可执行如下函数。

 

ExpandedBlockStart.gif 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          }

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值