阿 阿韬 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-28 #1 delphi中的TComBoBox控件,如果我的Item的text比这个控件的宽度要长的话,选择 下拉的时候就只能看到一部分,能不能设定看到的长度?
J jsxjd Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-28 #5 procedure TForm1.Button1Click(Sender: TObject); begin combobox1.perform(CB_SETDROPPEDWIDTH,combobox1.width+200,0); end;
procedure TForm1.Button1Click(Sender: TObject); begin combobox1.perform(CB_SETDROPPEDWIDTH,combobox1.width+200,0); end;
Q QQ989753 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-28 #8 楼上作法基本上等同于 PostMessage(ComboBox1.Handle,CB_SETDROPPEDWIDTH,combobox1.width+200,0); 殊途同归
J jsxjd Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-28 #10 你可以把以下语句放在form 的 OnCreate 事件中。 combobox1.perform(CB_SETDROPPEDWIDTH,combobox1.width+200,0);
影 影 子 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-28 #11 你的方法不错,不过200限死了大小。 也许可以这样参考,循环得到某一最长的Item, 再用TextWidth得到宽度,在OnDropDown事件里实现?
M mylu7735 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-28 #12 你可以改变Combox各项内容时增加一些语句: var MaxWidth, W: Integer; i: Integer; begin MaxWidth := 0; for i := 0 to ComboBox1.Items.Count - 1 do begin w := ComboBox1.Canvas.TextWidth(ComboBox1.Items.Strings); if MaxWidth < w then w := MaxWidth; end; PostMessage(ComboBox1.Handle, CB_SETDROPPEDWIDTH, MaxWidth, 0); end;
你可以改变Combox各项内容时增加一些语句: var MaxWidth, W: Integer; i: Integer; begin MaxWidth := 0; for i := 0 to ComboBox1.Items.Count - 1 do begin w := ComboBox1.Canvas.TextWidth(ComboBox1.Items.Strings); if MaxWidth < w then w := MaxWidth; end; PostMessage(ComboBox1.Handle, CB_SETDROPPEDWIDTH, MaxWidth, 0); end;