我在表单上有一个DBGrid.DBGrid有许多列,因此会显示水平滚动条.我向右滚动DBGrid视图以查看更多列.如果我选择一行,DBGrid视图会自动重置以查看第一列(就像我向后滚动到最左侧的位置一样).
有办法防止这种情况吗?
我假设你在网格选项中有goRowSelect.这会强制选定的col作为第一个非固定列,因此每当行更改代码以将选定单元格滚动到视图中时,强制第一个非固定列可见.
由于goRowSelect还有效地禁用了键盘的水平滚动,我试着没有它.您可以使用网格单元格的自定义绘图来显示当前行的所有单元格,并为所选单元格显示正确的颜色,即使实际上只选择了一个单元格.我也使用它来显示不同的颜色,具体取决于网格是否聚焦,类似于标准树控件的功能.为了使其正常工作,您不仅需要处理网格单元导航事件,还需要处理其他一些事件,如网格的OnEnter和OnExit,应用程序的OnActivate和OnDeactivate,等等.