我的项目中有一个TDbGrid,每次更改所选行时我都会尝试关闭一个事件.行中的任何更改都已更新链接到同一DataSource的所有数据感知控件,但还有其他更改,我需要一个事件处理程序. 我以为
我以为OnColEnter会起作用.根据帮助文件,它在以下情况下触发:
>用户使用导航到单元格
键盘.例如,当
用户使用Tab键或Home
键.
>用户单击鼠标按钮
在牢房里.
> SelectedField或SelectedIndex
财产设置.
不幸的是,当用户在启用dgRowSelect选项的情况下使用键盘导航时,它不会触发,并且没有OnRowEnter.并且在进行选择更改之前会触发OnKeyDown事件.我试图在这里模拟TListBox的数据感知版本,我需要一些东西来替换List Box的OnClick处理程序,尽管名称实际上随着选择的改变而消失,无论是通过鼠标还是键盘.有没有办法用TDbGrid做到这一点?如果没有,那么必须有一些其他网格控制来完成它.有谁知道它是什么? (最好是开源?)
OnDataChange是一种选择.另一个是,在TDataset方面,事件AfterScroll.大多数时候,我发现它比OnDataChange更实用;因为在OnDataChange中,一个滚动事件带有Field参数nil(这是一个陷阱,可能是你的AV编码的原因之一).