4

我需要在 Delphi 中获取 DBGrid 的选定单元格的值。

我不知道该怎么做。我试过 dbGrid 的 OnMouseMove

pt : TGridCoord;
...
pt:=dbGrid.MouseCoord(x, y);

[已编辑] 我可以使用 OnCellClick 来获取具有“Column.Field.AsString”的单元格的值,但是当我单击该行的任何列时,我想从第一列获取值。

4

6 回答 6

8

找到了。

dbGrid.Fields[0].AsString获取所选行的第一列的值。

于 2009-11-30T18:52:48.333 回答
3
procedure TForm1.DBGrid_DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh;  State: TGridDrawState);
const defaultCheckBoxFieldNumber = 1;
begin
  if DBGrid.SelectedField.FieldNo = defaultCheckBoxFieldNumber then
    ....;
  else
    ...;
end;

DBGrid.SelectedField.FieldNo获取事件DrawColumnCell中的选定字段TDBGrid

于 2011-05-17T11:13:40.667 回答
2

我知道这已经晚了,不确定这是否是标题的意思。但如果这意味着获取选定的单元格值,那么试试这个:

procedure Form1.dbGrid1CellClick(Column: TColumn);
begin
  ShowMessage(table1.Fields[Column.Index].AsString);
end;

确保
dbGrid1.Options.dbRowSelect := False;

于 2017-08-30T21:53:52.623 回答
1

ADBGrid没有焦点,因此您无法找出选择了哪一行。而是查看链接的DataSet. ADataSet有一个活动行。

于 2009-11-30T18:52:55.650 回答
1

我认为最简单的方法是将隐藏的 DBText 连接到您的数据集,然后设置 DBText 以显示您需要的字段,这样 DBText 将始终包含活动记录所需的值

于 2009-12-01T09:15:26.220 回答
0

试试这个来获取 dbgrid 中选定单元格的值:

procedure Form1.dbGrid1CellClick(Column: TColumn); begin ShowMessage(table1.Fields[DBGrid1.SelectedIndex].AsString); end;

于 2017-09-13T14:44:21.630 回答