DBGrid获取选定的单元格

时间:2009-11-30 18:11:20

标签: delphi dbgrid

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

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

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

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

6 个答案:

答案 0 :(得分:8)

找到它。

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

答案 1 :(得分: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.FieldNoDrawColumnCell中的事件TDBGrid上获得了选定字段。

答案 2 :(得分:1)

DBGrid没有焦点,因此您无法找到选中的行。而是查看链接的DataSetDataSet有一个有效行。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

我知道这已经很晚了,不确定这是不是标题的含义。 但如果它意味着获得所选的单元格值,那么试试这个:

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

确保
  dbGrid1.Options.dbRowSelect:= False;

答案 5 :(得分:0)

尝试此操作以获取dbgrid中所选单元格的值:

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