Winform中Datagrid编辑状态下textBox控件不响应Enter按钮的解决方案

首先,推荐DataGrid控件的使用大全http://www.syncfusion.com/faq/windowsforms/faq_c44c.aspx#q869q

 

接着,来解决Enter事件的触发问题。

 

最近做项目时发现DataGrid处于编辑模式下,textbox控件的keydown事件中捕捉不到enter按键,苦死我了,找了半天就是找不到解决方案,按其它按钮都能show出key。keyValue,但是按enter按钮没反应,没办法就使用TextBox。Leave方法来解决,但是客户不满意,非要使用anter,没辙,想偷懒还不行,今天搜了半天终于找到了,与大家分享

 

两种情况,第一种,在Form中

 

       添加一个窗体,窗体中有dg控件,想是dg控件响应enter事件,这个时候可以通过重写form的ProcessCmdKey事件,代码如下

 

protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
  {
   if(msg.WParam.ToInt32() == (int) Keys.Enter)
   {
    SendKeys.Send("{Tab}");
    return true;
   }
   return base.ProcessCmdKey(ref msg, keyData);
  }

 

   第二种情况:在类中。

 

这个时候,我们在做窗体的时候,没有添加Winform窗体,然后在上面做界面设计,我们采用一种纯代码方式,我讨厌做一个界面就添加一个窗体,所以我就自己写代码,用代码去控制控件的生成,设置它的属性,这个时候如果要重写ProcessCmdKey事件就必须继承System.Windows.Forms.Form类,然后在重写该方法,但测试发现依然不响应,这个时候我想到了重写datagrid控件,代码也很简单。

1.添加一个自定义控件MyDataGrid,让这个控件继承System.Windows.Forms.DataGrid

2。重写MyDatagrid控件的ProcessCmdKey事件。

3.在其他类中使用MyDataGrid控件即可

 

大功告成。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值