我正在使用样式属性设置为csOwnerDrawFixed的TComboBox组件,我实现了OnDrawItem并且一切正常,现在我希望组合框在具有csDropDown样式时的行为(使用 csOwnerDrawFixed 样式的行为类似于 csDropDownList 样式),我的意思是内部编辑。这可能吗?
问问题
3290 次
2 回答
8
Delphi 的 TComboBox 包装器不支持所有者绘制可编辑样式,但底层 Windows 控件支持,并且很容易启用它。
像这样创建一个新的后代类:
TComboBox = class(StdCtrls.TComboBox)
public
procedure CreateParams(var Params: TCreateParams); override;
end;
procedure TComboBox.CreateParams(var Params: TCreateParams);
begin
inherited;
if Assigned(OnDrawItem) then
Params.Style := Params.Style or CBS_OWNERDRAWFIXED
end;
像你已经在做的Style
那样设置csDropDown
和分配。OnDrawItem
于 2012-03-21T15:46:07.933 回答
0
OwnerDraw 样式都不支持在TComboBox
. 您将不得不使用单独的TEdit
。
于 2012-03-21T06:26:16.410 回答