请问Combobox如何设置文本垂直居中? 是在DrawItem里写吗?但我不知怎么写,网上也找不到相关的,麻烦大家 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 设ComboBox1的Style为csOwnerDrawVariable然后在它的DrawItem程序中:procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);var p:integer;beginp:=(combobox1.ItemHeight-combobox1.Canvas.TextHeight(combobox1.Items[Index])) div 2;combobox1.Canvas.TextOut(Rect.Left,Rect.Top+p,combobox1.Items[Index]);end;由于每个字符的实际高度不一样(如a与b,后者要比前者实际高些:ab),所以结果可能不会完全居中(如全部是text为aaaa的) 谢谢,还想问一个,就是如何去掉这个combobox被选中时的虚线框呢? Midas Socket ADO,直接打开Word文件打不开! 模拟鼠标点击(送高分) 如何循环取DBGrid单元格里的值 刚好过半年再升一星,再散散分874一下.---[散分贴] 一个在大富翁上没人回答的问题 怎样在俩地能快速的把数据插到有一百万条数据的数据库中去 delphi和C的数据兼容... 那位知道delphi群组开发是如何进行设置和操作的 我作了一个MTS的程序使用时在本机上可以进行连接但不可以连接其它的机器请问为什么???? 如何在程序中修改sql server中某个表的某个列的字段名? StringGrid动态产生一个新行问题 【测试帖】散点分
然后在它的DrawItem程序中:
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
p:integer;
begin
p:=(combobox1.ItemHeight-combobox1.Canvas.TextHeight(combobox1.Items[Index])) div 2;
combobox1.Canvas.TextOut(Rect.Left,Rect.Top+p,combobox1.Items[Index]);
end;
由于每个字符的实际高度不一样(如a与b,后者要比前者实际高些:ab),所以结果可能不会完全居中(如全部是text为aaaa的)