在.Net中通常我们把Form.KeyPreview设为true来预先处理键盘输入,例如按ESC键则关闭,按回车改为发送TAB等,但如果焦点落在了DataGrid的文本框中,KeyPreview则不起作用,Form不能截获键盘事件。解决办法是禁用DataGrid中的文本框。在Form的Load事件中加入:
foreach(DataGridTextBoxColumn c in DataGrid1.TableStyles[0].GridColumnStyles)
c.TextBox.Enabled=false;
但此时DataGrid的文本框的内容不能被修改。