Delphi ComboBox控制OnDrawDataCell位置与主/子网格

时间:2015-02-04 14:23:18

标签: delphi dbgrid

在我的Delphi应用程序中,我有两个网格。当用户从顶部网格中选择记录时,将在下部网格中过滤记录。

我试图在下部网格中实现下拉控件,该控件枚举TStringList中的项目。我设置它的位置OnDrawDataCell:

procedure TfrmPieces.grdPiecedtlDrawDataCell(Sender: TObject;
  const Rect: TRect; Field: TField; State: TGridDrawState);
begin
if (gdFocused in State) then
begin
if (Field.FieldName = 'Vendors') then
with cboVendors do
begin
  Left := Rect.Left + grdPiecedtl.Left + 1;
  Top := Rect.Top + grdPiecedtl.Top + 1;
  Width := Rect.Right - Rect.Left + 2;
  Width := Rect.Right - Rect.Left + 2;
  Height := Rect.Bottom - Rect.Top + 2;
end;

端 端;

我还实现了将控件隐藏在col退出并显示和隐藏控件更改单元格。

问题是:如果我在顶部网格中选择有3行的记录,并选择第3行中的列,则保持组合框的位置。我在上部网格的行更改时隐藏了组合框(目前),但是当我点击新刷新的下部网格的第1列时,它会显示旧位置的下拉列表。如果我单击该字段并在第1行中返回它,那么重新定位正常,但该初始行更改导致问题。我尝试在行更改时重绘网格,但这没有效果。

我感谢任何建议。谢谢!

0 个答案:

没有答案