如题。

解决方案 »

  1.   

    如何在DataGrid中按Del键进行删除之前能给出提示以求确认
    http://blog.csdn.net/knight94/archive/2006/03/31/646264.aspx
      

  2.   

    在本身DataGrid中没有此类事件进行直接处理,你需要去接获传给DataGrid的消息,从而预先处理。 大致的方法是,编写一个类去继承DataGrid,然后重载PreProcessMessage 函数,具体代码如下。    public class comDataGrid:DataGrid    {        private const int WM_KEYDOWN = 0x100;        public override bool PreProcessMessage( ref Message msg )         {             // Get press key code            Keys keyCode = (Keys)(int)msg.WParam & Keys.KeyCode;              if( this.DataSource != null )            {                // Full row selected                if( this.IsSelected( this.CurrentCell.RowNumber ) )                {                    // The key code is "Delete"                    if(msg.Msg == WM_KEYDOWN && keyCode == Keys.Delete )                     {                         // Show confirmation info                        if( MessageBox.Show("Delete this row?",                             "",                             MessageBoxButtons.YesNo) == DialogResult.No )                             return true;                     }                }            }            return base.PreProcessMessage(ref msg);         }         public comDataGrid():base(){}    }        然后只要把程序中所有的“DataGrid”替换成“comDataGrid”,其他代码保持不变就可以使用了。