如何改变dbcombobox的下拉列表框宽度为其中items中的最长字符串长度?
我已用了CB_SETITEMHEIGHT,只对combobox有效~~LB_SETCOLUMNWIDTH 这个可以吗?
我已用了CB_SETITEMHEIGHT,只对combobox有效~~LB_SETCOLUMNWIDTH 这个可以吗?
解决方案 »
- C++一段声明怎么转成delphi啊,求助
- 关于在Delphi中做票据打印
- 请教:四人帮的《设计模式》,是哪四个人啊?
- 关于使用ADOADOStoredProc调用PL/SQL的问题,急
- Borland再作新贡献,Together Designer Community Edition出了
- 】昆明【昆明程序员QQ群 3466528
- 怎么解决RAVE打打印报表时出现的乱码?
- rave 中的问题,我是新来的希望大家给个面子
- 很难,谁能帮我?
- 为什么他们都可以,我却做不出来,救命?
- 这句话怎么理解啊IdTCPClient1.IOHandler.CheckForDataOnSource(250);
- 我要在程序中插入一个eidt,能打开和保存word文档,该怎么做?
DBComboBox1.Perform(CB_SETDROPPEDWIDTH, 500, 0);
这样设置没有问题,只有在DBComboBox1.Items.Count>0时才能看到效果
var
i,maxlen:integer;
begin
maxlen := 0;
for i := 0 to DBComboBox1.Items.Count - 1 do
begin
if DBComboBox1.Canvas.TextWidth(DBComboBox1.Items.Strings[i]) > maxlen then
maxlen := Self.Canvas.TextWidth(DBComboBox1.Items.Strings[i]);
end;
DBComboBox1.Perform(CB_SETDROPPEDWIDTH, maxlen+5, 0);
end;
感谢bdmh,刚开始是我放错地方了,我放到DrawItem事件下,应该放在DropDown事件下的~~~
结贴~~