如果combobox的长度有限,而其中下拉的items很长,下拉时不能显示一行的完整内容,能不能让鼠标下拉时,就在旁边用hint显示出所选行的完整内容啊? 

解决方案 »

  1.   

    USES   math;
    {$R *.dfm}
    procedure  TForm1.ComboBox1DropDown(Sender:  TObject);
    var
       I:  Integer;
       vMaxWidth:  Integer;
    begin
       vMaxWidth  :=  TComboBox(Sender).Width;
       for  I  :=  0  to  TComboBox(Sender).Items.Count  -  1  do
           vMaxWidth  :=  Max(vMaxWidth,
               TComboBox(Sender).Canvas.TextWidth(TComboBox(Sender).Items[I])  +  8);
       TComboBox(Sender).Perform(CB_SETDROPPEDWIDTH,  vMaxWidth,  0);