下面的代码解决
Var
i,maxWidth:Integer;
Begin
MaxWidth:=0;
For i:=0 to listbox1.items.count-1 do
if MaxWidth<listbox1.canvas.TextWidth(listbox1.Items) then
MaxWidth:=listbox1.Canvas.TextWidth(listbox1.Items);
SendMessage(listbox1.Handle,LB_SETHORIZONTALEXTENT,MaxWidth+1,0)