Delphi 在DBGrid组件中管理单击事件
通过处理DBGrid组件上的单击事件,我遇到了一个问题。我知道这个事件并没有针对这个组件公开,所以我使用“OnCellClick”事件,以便在单击DBGrid的一行时执行一些操作Delphi 在DBGrid组件中管理单击事件,delphi,Delphi,通过处理DBGrid组件上的单击事件,我遇到了一个问题。我知道这个事件并没有针对这个组件公开,所以我使用“OnCellClick”事件,以便在单击DBGrid的一行时执行一些操作 另一点是,在填充DBGrid(链接到TkbmMemTable)之后,我首先执行memTable.First以查看网格中的第一个元素。问题是我不能为第一行触发onCellClick事件。实际上,当我单击第一行时,它会触发双击事件。您可以通过派生自己的组件或使用网格在同一单元中声明(Hack)类,并通过强制转换分配事件,使
另一点是,在填充DBGrid(链接到TkbmMemTable)之后,我首先执行
memTable.First
以查看网格中的第一个元素。问题是我不能为第一行触发onCellClick事件。实际上,当我单击第一行时,它会触发双击事件。您可以通过派生自己的组件或使用网格在同一单元中声明(Hack)类,并通过强制转换分配事件,使受保护的OnClick可见。但我不确定这是否会产生预期的结果,因为如果您在网格的现有编辑器中单击,则不会触发该事件。如果您在其他行和同一列中单击,则会保留该编辑器,因此您必须添加OnCellClick或单击到另一列中。我无法重现双击事件的触发
type
THackGrid=Class(TDBGrid);
procedure TForm5.MyEvent(Sender: TObject);
begin
MyDataset.First;
end;
procedure TForm5.FormCreate(Sender: TObject);
begin
THackGrid(DBGrid1).OnClick := MyEvent;
end;
您使用上面提到的OnCellClick附加处理进行了尝试,这是在InplaceEditor中捕获事件所需的吗?