我有一个表格上一个DBGrid。该DBGrid的有很多列,所以显示的水平滚动条。我滚动DBGrid的视图向右看多列。如果我选择一行,所述的DBGrid视图自动复位,以查看所述第一柱(如,如果我滚动回最左边的位置)。

有没有办法防止?

有帮助吗?

解决方案

我假设你已经的 goRowSelect 的网格选项。这迫使选择栏是第一个非固定的列,所以每当行改变代码到所选择的细胞滚动到视图迫使第一非固定柱可见。

由于 goRowSelect 的也可以有效地禁用与键盘我尝试没有它的水平滚动。您可以使用网格单元格的自定义绘图显示当前行的所有细胞与适当的颜色选定单元格,即使只有一个细胞真正选择。我用这也显示取决于电网是否被聚焦不同的颜色与否,类似于一个标准树控件做什么。为此才能正常工作,你却需要处理的不仅网格单元导航事件,但一些其他事件太像的的OnEnter 的和的的OnExit 的网格, OnActivate OnDeactivate 中的应用,等等。

其他提示

您可能能够索要滚动条位置

GetScrollInfo(Self.Handle, SB_VERT, SIOld);

和使用SetScrollInfo( )放回去。有可能是一个更好的办法。 SelectedField是另一种方式(获得/设置为需要)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top