继承TStringGrid自己开发表格控件时,重载CanEditShow方法使其返回false,再重载mousedown方法,在该方法里修改单元格属性,并调用invalidateCell方法,使其刷新.
当goEditing为false时一切正常,当goEditing为true并且焦点已在该单元格时,也就是第二次点击同一个单元格时,不刷新,表现为调试时没有调用drawCell方法,界面也没有变化,而当点到另外一个单元格时(由于系统会自动刷新前一个和当前单元格),此时前面的单元格才会刷新. 请教大家这是什么原因?谢谢!
当goEditing为false时一切正常,当goEditing为true并且焦点已在该单元格时,也就是第二次点击同一个单元格时,不刷新,表现为调试时没有调用drawCell方法,界面也没有变化,而当点到另外一个单元格时(由于系统会自动刷新前一个和当前单元格),此时前面的单元格才会刷新. 请教大家这是什么原因?谢谢!
解决方案 »
- 超级郁闷!只要采用智能ABC输入法录入中文信息,那么软件就会出现地址访问冲突,系统异常中断,不能退出系统,其他任何输入法都没问题。
- fastreport3 自己做了一个预览界面 如何实现对当前预览报表的编辑
- Delphi发邮件用IdSMTP和IdMessage,还是不行
- 关于怎样知道语句执行成功了!?
- 通过TcharAxis.GetCursorValues可以得到当前鼠标下的x,y值,怎么通过x得到相应的Series的值?
- write的问题
- 连接中间层,出项“stack overflow”的错误,急!
- 报错“尚未调用CoInitilize”。
- Delphi 5 or 6 中枚举型是不是不能定义汉字呢?
- SQL SERVER 7.0问题
- 关于fastreport的小问题!!!
- 变量在哪里声明好?
见到过刷新异常的,采用下面的方法解决,不知道你的错误行不
Form1->StringGridData(Sender); 改为:
Form1->StringGridData(NULL);
处理方法是适当的时候把goEditing属性去掉或者加上就可以了.