在TComboBox打主义是不可能的,我明白你的意思,我也经常这样用。我使用TStringList变量解决了这个问题:如:ID与Name对照 var ID:TStringList;不过ID和Name加入的顺序要完全一致 -------------------------------------使用ID[ComboBox1.ItemIndex]来得到当前Name对应的ID注意要判断ComboBox1.ItemIndex>-1
没辙,我一直以来都还是以这样的方法解决:ComboBox1.Items.Add('项目名称 ID:12345');使用: procedure TForm1.ComboBox1Change(Sender: TObject); var IDPos:Integer; XMMC,ID:String; begin IDPos:=Pos('ID:',ComboBox1.Text); XMMC:=Trim(Copy(ComboBox1.Text,1,IDPos-1)); ID:=Copy(ComboBox1.Text,IDPos+3,5); ShowMessage(XMMC); ShowMessage(ID); end; 空格数视你的需要而定,并且 style 属性不能用 csDropDown;这样才能把 ID 隐藏在后面看不见。
在TComboBox中用每一个item显示项目的名称,需要在每一个item上附加存储项目的ID怎么实现?p.s. 楼上, 你的主意不怎么样
也许可以用一个数组 数组内存放附加项目的ID 主要是让数组下标和ItemIndex对应起来
或者用二维数组
var
ID:TStringList;不过ID和Name加入的顺序要完全一致
-------------------------------------使用ID[ComboBox1.ItemIndex]来得到当前Name对应的ID注意要判断ComboBox1.ItemIndex>-1
procedure TForm1.ComboBox1Change(Sender: TObject);
var
IDPos:Integer;
XMMC,ID:String;
begin
IDPos:=Pos('ID:',ComboBox1.Text);
XMMC:=Trim(Copy(ComboBox1.Text,1,IDPos-1));
ID:=Copy(ComboBox1.Text,IDPos+3,5);
ShowMessage(XMMC);
ShowMessage(ID);
end;
空格数视你的需要而定,并且 style 属性不能用 csDropDown;这样才能把 ID 隐藏在后面看不见。