我需要在Delphi中获取DBGrid的选定单元格的值。
我不知道该怎么做。我尝试过dbGrid的OnMouseMove
pt : TGridCoord;
...
pt:=dbGrid.MouseCoord(x, y);
将帖子 我可以使用OnCellClick来获取具有“Column.Field.AsString”的单元格的值,但是当我单击该行的任何列时,我想从第一列获取值。
答案 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.FieldNo
在DrawColumnCell
中的事件TDBGrid
上获得了选定字段。
答案 2 :(得分:1)
DBGrid
没有焦点,因此您无法找到选中的行。而是查看链接的DataSet
。 DataSet
有一个有效行。
答案 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;