Delphi TAdvStringGrid 在表格显示出下拉列表

TAdvStringGrid表格显示下拉列表的时候,总是刷新 并且选择的内容被清空,如下图:

后来调整属性,在表格的ContrtolLook属性下的DropDownAlwaysVisible的属性设置为True,并且在表格的HasComboBox的方法中,增加如下代码,解决问题

procedure TForm_DWUserManager.advstrngrd_SubDWHasComboBox(Sender: TObject;
  ACol, ARow: Integer; var HasComboBox: Boolean);
var
  FieldClass: TFieldClass;
begin
  FieldClass := TFieldClass(GetField(advstrngrd_SubDW, ACol));
    if not Assigned(FieldClass) then Exit;
    HasComboBox :=  AnsiSameText(FieldClass.FieldCode, 'DW_TYPE') or AnsiSameText(FieldClass.FieldCode, 'USE_TYPE');
end;

如图:

原文地址:https://www.cnblogs.com/zhangzhifeng/p/2285696.html