如何将焦点设置在TDBgrid Delphi中的特定行上

时间:2015-03-27 08:58:28

标签: delphi gridview

我想将焦点设置在Tdbgridview上的特定行上。 首先,我从组合框中选择条件字段(搜索ex:FisrtName关注的列),然后在TeditField中键入条件(例如:Jack)。 那么Dbgrifd的箭头应该指向相关的行。 我应该怎么做? 感谢。

1 个答案:

答案 0 :(得分:4)

TDBGrid组件(以及所有其他TDBxxx组件)是Delphi定义为数据软件组件的组件。这种组件作为数据集的可视化表达式存在。

所以,在TDBGrid中你不应该考虑聚焦网格的一行,而是考虑定位一行网格的数据集(例如,使用TLama建议的Locate方法)。网格将注意到其数据集的当前行已更改(因为网格了解有关数据集的条件)并将聚焦相应的行。

更新1

下面你可以看到我所说的一个例子:

MyDataset.Locate('Id', 123, []);

上面的代码只是在名为MyDataset的数据集中查找某条记录。第一个参数是数据集中现有字段的名称。因此,您有一个包含某些字段的数据集,其中一个字段名为Id。第二个参数是所需行中该字段中包含的值,第三个参数是此处不适用的一些选项。有关Locate方法的详细信息,请转到Delphi docwiki

换句话说,我们正在寻找一个字段Id的值为123的行!如果数据集可以找到这样的行,它将成为当前记录(或行)。如果TDBGridTDataSource连接TMyDataset,它会自动更新以选择相应的行,就像您想要的那样。