排名
7
文章
192
粉丝
15
评论
16
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术

前言
每当单元格处于编辑模式时,其托管控件正在接收
事件,而不是
包含它的父项。这就是为什么当某个单元格不处于编辑模式时(即使它被选中),因为你的
控件本身接收到该
事件,所以你的键盘快捷键可以正常工作。但是,当你处于编辑模式时,单元格包含的编辑控件正在接收事件,并且没有发生任何事情,因为它没有附加自定义处理程序例程。
我花了太多时间调整标准
控件来按照我希望的方式处理编辑提交,并且我发现解决这种现象的最简单方法是对现有
控件进行子类化并覆盖其
功能。不论
是否处于编辑模式,无论你在此处放入的自定义代码是何时按下按键,都将运行。
具体代码如下
class MyDataGridView : System.Windows.Forms.DataGridView{ protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) { MessageBox.Show("Key Press Detected"); if ((keyData == (Keys.Alt | Keys.S))) { //Save data } return base.ProcessCmdKey(ref msg, keyData); }}
评价
Session
监听dataGridView的键盘,可以当按下某个键时产生联想
Session
最常用的就是当你输入一半按下Enter,根据你输入的数据从数据库查询到Listview,然后双击Listview的值自动填充到你需要填写的地方