代码改变世界

Delete键

2012-07-15 15:00  左眼微笑右眼泪  阅读(441)  评论(0编辑  收藏  举报

      在做Windows窗体程序时,如果用到了DataGridView,里面是你展示的数据,那么你会写一个删除的方法,例如dgvStudent_Deleted,在这个里面,你会先做一些判断,是否有选中的行,或者一些其他的业务上的判断,然后进行删除。但是有一个问题就是,DataGridView默认和Delete键关联起来了,也就是,即使你不写dgvStudent_Deleted这个删除的方法,你在键盘上按Delete键,它也会删除相应的数据。所以如果你自己写的方法里面有一些判断,或者弹出一些提示框,但是如果你按Delete键,那么它直接就把你的数据删除了,不会做任何的判断,因为它是用自己的方法去删除的,不会去调用你写的方法。下面介绍一种处理的办法。在这个控件的KeyDown事件里面,加上下面的代码:

private void dgvDictionary_KeyDown(object sender, KeyEventArgs e)
       {
           if (e.KeyCode == Keys.Delete && dgvDictionary.SelectedRows.Count != 0)
           {
               dgvDictionaryDelete_Click(this,null);
               e.Handled = true;
           }
 
       }

     也就是当用户使用了Delete键,我们让它去调用我们自己写的删除的方法。这样就达到了目的。

     目前只发现DataGridView内置了与Delete键的绑定,其他的控件,如果你不设置ShortKey的话,Delete键应该是没有和删除关联的。