我要在一个已经绑定了DataSource的DBGRID中的某一列添加TComBox控件,要求每一条记录在该列所对应的CELL中都有一个TCombox控件,而且控件随着数据的滚动而滚动,不是在某一个位置不动,就像属性框一样,
我知道,如果该列是数据集中的对应的列,直接设置该列pickList为一个TStrings就能实现,我现在是,该列不是数据集中的对应的列,设置该列的pickList为一个TStrings就不行了,我现在的做法是在该列的每一个可见的CELL中创建一个TCOMBOX,可这些控件并不会跟着数据的一下滚动而滚动,
大家说说,我该如何才能实现自己创建的TCOMBOX随着数据的滚动而滚动?
我知道,如果该列是数据集中的对应的列,直接设置该列pickList为一个TStrings就能实现,我现在是,该列不是数据集中的对应的列,设置该列的pickList为一个TStrings就不行了,我现在的做法是在该列的每一个可见的CELL中创建一个TCOMBOX,可这些控件并不会跟着数据的一下滚动而滚动,
大家说说,我该如何才能实现自己创建的TCOMBOX随着数据的滚动而滚动?
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
if (gdFocused in State) then begin
ComboBox1.Left := Rect.Left + DBGrid1.Left;
ComboBox1.Top := Rect.Top + DBGrid1.top;
ComboBox1.Width := Rect.Right - Rect.Left;
ComboBox1.Height := Rect.Bottom - Rect.Top;
ComboBox1.Visible := True;
end;