着急,问一个DBGrid的重画问题。 现在有一个DBGrid,因为使用DrawColumnCell事件重绘了当前记录行的颜色,使焦点离开DBGrid后还能显示那一行记录。现在的问题是,当记录比较多,当前比如显示在第3条记录,滚动滚动条后,点击第4条记录,现在就是第3和第4行都有指定颜色的背景,怎样才能消除呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你只要选中的变色,可以这样 if State =[ gdSelected] then DBGrid1.Color:=clred else DBGrid1.Color:=clwhite; 我跟踪过程序,主要是点击滚动条后,DBGrid没有执行Repaint动作。当把程序最小化再最大化后,就只有当前记录,也就是第4条上有颜色,第3条上也正常显示了。 那就在你的dataset的afterscroll中重画DBGrid(试试Refresh/repaint或update) 如果在afterscroll事件中重画都不能解决问题,我没法了,事实上,我很少用dbgrid,建议你用eblib的dbgrideh试试(功能强大的第三方控件,我一直用它) 如何从快捷方式获取文件路径? 求问QRChart 怎么用? ■■难题!Socket.ReceiveText 小问题!如何解决?■■ 以前的Delphi程序无法运行,显示找不到所需的MFC42D.dll文件 InterBase执行SQL的问题 请问两个RICHEDIT中如何保持相同状态? 请问如何delphi高手!! 桌面数据库的INSERT问题 千两狂死郎,请进! 这个程序中窗体上应该加点什么,来实现查找相同文件名的数量 让在状态栏上的程序闪烁 如何判断cxgrid中按某列分组所得到的组数?
if State =[ gdSelected] then
DBGrid1.Color:=clred
else
DBGrid1.Color:=clwhite;