datagrid的onkeydown事件中应该可以捕捉del键吧
或者DataTable.RowDeleting事件中对删除操作进行控制
e.Action=DataRowAction.Nothing是不是可以达到目的?

解决方案 »

  1.   

    在dataGrid的keyDown事件里定义Del事件
      

  2.   

    先谢帮忙!试了下,DataGrid的KeyDown事件不行hhzh426(春之风):
    DataTable.RowDeleting事件可以引发,但是e.Action=DataRowAction.Nothing在编译时会出现e.Action为只读的错误。也就是不能取消删除操作。如何才能验证不通过时取消删除呢?
      

  3.   

    killer_wzb(浮云) :哪里的deletecommand事件?可否详细些?
      

  4.   

    To JadyZhu(Jady Zhu) :看这个例子.
    5.54  How can I put up a confirmation question when the user tries to delete a row in the datagrid by clicking on the row header and pressing the Delete key?
    http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q889q
      

  5.   

    班兄,你真的太好了!这么好的东西,太感谢了!
    大家可以去看看,应该说DataGrid的很多问题都可以在这找到答案!
    强烈收藏!!!
      

  6.   

    问题没解决就结贴了,还望班兄再次帮忙。
    -----------
    public override bool PreProcessMessage( ref Message msg ) 
     


    Keys keyCode = (Keys)(int)msg.WParam & Keys.KeyCode; 
     
    if(msg.Msg == WM_KEYDOWN && keyCode == Keys.Delete  
        && ((DataView) this.grdEpiDetail.DataSource).AllowDelete) 
     { 
           if(MessageBox.Show("Delete this row?", "", 
       MessageBoxButtons.YesNo) == DialogResult.No) 
      return true; 
     
     } 
     
    return base.PreProcessMessage(ref msg); 
    } -----------------------------------------------------
    以上是从答案处拷贝过来,但有两个问题,还请帮忙:
    1。如何通过上述代码重写WinForm中的DataGrid的PreProcessMessage方法?
    2。WM_KEYDOWN 如何设定值,并具体为什么意义?
    3。可否给点如何实现的思路?