根据设计要求,用户无法直接编辑datagridview。它处于只读模式。当用户双击单元格时,datagridview的只读属性将变为false,并且该单元格接受键盘输入。但是,原始键盘输入需要在进入单元格之前进行格式化。因此,我拦截KeyPress事件如下:动态修改时Datagridview单元格值未更新
private void dgw_keyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
此时单元处于编辑模式和脏模式。然后我用另一种方法更新Value属性,并调用dgw.Refresh()
,它应该在单元上显示更新的值。但它不会。它只会在当前单元格不脏并且不处于编辑模式时更新。当它仍处于编辑模式时,如何强制单元格显示更新值?
任何想法?
InvalidateCell()? – Dmitry 2011-05-11 04:44:57
您想要实现的功能不是很清楚,您如何捕获“keypress”事件,然后修改输入并将其分配给网格。请发布所有相关的代码,这不会给出导致问题的whatz的任何见解。 – V4Vendetta 2011-05-11 05:13:45
我试图在没有运气的情况下对datagridview控件执行InvalidateCell()UpdateCellValue()和Refresh()。 我拦截并忽略了控件的关键事件。相反,我有一个记录击键的键盘钩子。我采取由键盘钩子捕获的关键事件,修改值并将它们显示在DGW单元上。 – Thracian 2011-05-11 19:19:49