Winform中Datagrid编辑状态下textBox控件不响应Enter按钮的解决方案
来源:互联网 发布:淘宝用户行为隐私保护 编辑:程序博客网 时间:2024/05/16 09:14
首先,推荐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控件即可
大功告成。
- Winform中Datagrid编辑状态下textBox控件不响应Enter按钮的解决方案
- 树形控件响应Enter消息,结束编辑控件的编辑
- TextBox控件的Enter和Leave事件中实现编辑时背景颜色的变化
- 在 Android 的文字编辑控件 (TEdit) 中, 如何按下 Enter 就隐藏虚拟键盘
- 让编辑状态下的UITableViewCell响应点击事件时,不改变背景色
- 让编辑状态下的UITableViewCell响应点击事件时,不改变背景色
- winform窗口中实现按Enter键动态将光标定位到下一个textBox控件。以登录窗口为例
- winform textbox 输入状态下隐藏光标
- C#WinForm中支持透明的TextBox控件
- datagrid 编辑 textbox 还是原来的值
- .net WinForm用户控件开发--(1)带按钮的textbox控件
- DataGridView处于编辑状态的时候不响应Keyup事件
- 按钮enter响应问题
- iOS中按钮不响应的解决方法
- winform 按钮响应按下回车时的方法
- VS2003中WinForm的datagrid上显示时间的解决方案
- [C#] WinForm中按钮响应回车事件的简单方法
- [C#] WinForm中按钮响应回车事件的简单方法
- 周娟56.com(我乐网)CEO访谈
- 另一种VB图像旋转的方法
- 20几岁决定男人的一生(摘抄)
- OPENGL问题:link时出现error LNK2001: unresolved external symbol ___glutInitWithExit@12的错误提示
- 聚集索引和非聚集索引
- Winform中Datagrid编辑状态下textBox控件不响应Enter按钮的解决方案
- [转]显示ModalExtender一样的弹出效果
- OpenGL编程轻松入门之一个简单的例子
- Tomcat5.5(6.0)配置-多域名绑定和虚拟目录
- CURL常见问题
- MPEG2 TS的测量和分析
- 色阶的中间调调节原理之一
- 重建Hibernate的SessionFactory的方法(不重启服务)
- 用VB将目录里所有文件及子目录存储到一个类型数组中后,将基其反映在Treeview控件上