在你的Form的OnCreate事宜中添加以下代码: procedure TForm1.FormCreate(Sender: TObject); var i, MaxWidth: integer; begin for i := 0 to ListBox1.Items.Count - 1 do MaxWidth := 0; if MaxWidth < ListBox1.Canvas.TextWidth(ListBox1.Items.Strings[i]) then MaxWidth := ListBox1.Canvas.TextWidth(ListBox1.Items.Strings[i]); SendMessage(ListBox1.Handle, LB_SETHORIZONTALEXTENT, MaxWidth+2, 0); end; 用此办法,包你成功!
当Item内容较长时,标准listBox中跨越lisBox.width的长度看不到,若何决? 试过sendmessag+LB_SETHORIZONTALEXTENT 但无效(对ComBox有效).