DataGridView单元格处于编辑状态触发KeyDown等事件
来源:互联网 发布:windows怎么截图窗口 编辑:程序博客网 时间:2024/05/16 05:33
由于DataGridView的单元格DataGridCell处于编辑的时候,
当你按Enter键,那么DataGridView是不会激发KewPress/KeyDown/KeyUp这些事件的,
因为这个时候的DataGridView是一个容器。
我们无法直接在DataGridView的KeyPress事件中做处理,原因上面已经说明,也无法使用CellEndEdit这个事件,
因为这个事件不一定是通过Enter来触发的,直接鼠标移动到其他单元格也会的,因此我们需要修改一下:
1、项目里,添加组件MoMoDataGridView
using System;using System.Collections.Generic;using System.ComponentModel;using System.Diagnostics;using System.Text;using System.Windows.Forms;namespace UFIDA.U8.Portal.Interface{ public partial class MoDataGridView : DataGridView { protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.F2) { this.OnKeyPress(new KeyPressEventArgs('f')); return true; } else if (keyData == Keys.Enter) { this.OnKeyPress(new KeyPressEventArgs('e')); return true; } else if (keyData == Keys.Delete) { this.OnKeyPress(new KeyPressEventArgs('d')); return true; } else return base.ProcessCmdKey(ref msg, keyData); } }}
2、然后将这个控件拖到窗体中 添加KeyPress事件
private void dgData_KeyPress(object sender, KeyPressEventArgs e){ dgData.EndEdit(); int irows = dgData.CurrentCell.RowIndex; int icols = dgData.CurrentCell.ColumnIndex; if (irows > -1 && icols > -1) { if (e.KeyChar == 'd') { if (dgData.CurrentCell.ReadOnly == false) dgData.CurrentCell.Value = null; } if (e.KeyChar == 'f') { if (dgData.CurrentCell.ColumnIndex == 1) { string cinv = ""; if (dgData.CurrentCell.Value != null) { if (dgData.CurrentCell.Value.ToString() != "") cinv = dgData.CurrentCell.Value.ToString(); } frmInfor infor = new frmInfor("存货", cinv); infor.ShowDialog(); dgData.CurrentCell.Value = frmInfor.rc; } } }}
阅读全文
0 0
- DataGridView单元格处于编辑状态触发KeyDown等事件
- DataGridView处于编辑状态的时候不响应Keyup事件
- datagridview 单元格为 编辑状态
- DataGridView在Cell编辑状态响应回车键下的KeyPress/KeyDown/KeyUp事件
- WinForm DataGridView单元格变化触发事件
- DataGridView DataGridViewCheckBoxColumn编辑时实时触发事件
- DataGridView DataGridViewCheckBoxColumn编辑时实时触发事件
- DataGridView DataGridViewCheckBoxColumn编辑时实时触发事件
- HRESULT: 0x800A03EC -----当EXCEL单元格处于编辑状态时
- DataGridView中对各种类型的单元格控件的事件处理(DataGridViewCheckBoxCell、DataGridViewComboBoxCell等的选定、事件触发)
- DataGridView中对各种类型的单元格控件的事件处理(DataGridViewCheckBoxCell、DataGridViewComboBoxCell等的选定、事件触发)
- 双击datagridview表头或第一列的单元格触发事件
- 双击datagridview表头或第一列的单元格触发事件
- DataGridView指定单元格的编辑状态与修改
- winform设置DataGridView某行某列单元格为可编辑状态
- DataGridView合并单元格 编辑单元格
- DataGridView禁止编辑单元格
- DataGridView单击处于编辑模式
- mysql用命令修改数据库的用户名和密码
- Glide设置圆角图片后设置ImageVIew的scanType="centerCrop"无效解决办法
- Bus Hound 的使用方法
- 用栈实现快速排序
- 封装
- DataGridView单元格处于编辑状态触发KeyDown等事件
- SpringBatch_JUnit 错误积累
- oracle数据库的简单操作
- JavaScript流程控制---分支语句、循环语句练习题
- HDU 5538 House Building
- 【数据结构与算法之排序】归并排序
- 《SLF4J官方文档》SLF4J-FAQ 常见问题解答
- 飞塔NGFW-FortiGate-5.2(BYOL)
- QoE的定义及影响因素