2

我正在创建自己的 DBGRid,它工作正常,除了选择列表。无论为网格设置什么按钮样式,它总是显示就地编辑器,既不是选择列表也不是椭圆按钮!

我想不出我正在做的错误:(。这是相关代码:

function TMyDBGrid.CreateEditor: TInplaceEdit;

begin
result:=TInplaceEdit.Create(self);

end;

function TMyDBGrid.GetEditStyle(ACol, ARow: integer): TEditStyle;
begin
 case Columns[ACol].ButtonStyle of
  cbsAuto : Result:=esPickList;
  cbsNone : result:=esSimple;
  cbsEllipsis : result:=esEllipsis;
end;
end;

构造函数和析构函数只是调用了inherited,构造函数只是为网格设置了一些颜色。

4

1 回答 1

4

没有选择列表或按钮的原因是您使用的TInplaceEdit是不支持所需功能的单元格编辑器。

TDBGrid使用TDBGridInplaceEdit继承自的一个TInplaceEditList作为其就地编辑器,该编辑器TCustomListbox为其下拉列表集成了一个并绘制和管理编辑按钮。

于 2016-10-26T23:25:10.923 回答