如何让ComboBox的下拉列表宽度自适应内容的宽度

 我来答
乐观的hsg52
2017-07-29 · TA获得超过149个赞
知道答主
回答量:482
采纳率:0%
帮助的人:115万
展开全部
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) ComboBox1: TComboBox; Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);beginend;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);var strlen:integer;i:integer;begin strlen:=length(combobox1.Items[0]); for i:=1 to combobox1.Items.Count-1 do//计算最大长度 begin if length(combobox1.Items[i])>strlen then strlen:=length(combobox1.Items[i]); end; combobox1.Width:=strlen*9;//控制width属性end;end.我把代码写在窗体的鼠标移动事件中了,你也可以写在其他过程中。主要是控制组合框的width属性,通过列表框中的每个items的长度来改变。倒数第三行的strlen*9是可以改变的,乘以几都可以,自己试试乘几合适。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式