在ComboBox的OnKeyDown事件中写if (Key=VK_UP) or (Key=VK_DOWN) then begin ComboBox.ItemIndex:=0; ComboBox.Text:=RightStr(ComboBox.Text,7,Length(ComboBox.Text)-7); //假设你前面的数字编号加空格是7位 end;
假如是两个空格的话 procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key=VK_UP) or (Key=VK_DOWN) then ComboBox1.Text:=Copy(ComboBox1.Items[0],7,4); end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key=VK_UP) or (Key=VK_DOWN) then ComboBox1.Text:=Copy(ComboBox1.Items[0],7,4); end; ComboBox1.Items[0] 我要的不是第一个,要COMBOBOX1.SELTEXT,可为什么返回来的是空值
ComboBox.ItemIndex:=0; //索引为0表示选择Items属性列表的第一项
在ComboBox的OnKeyDown事件中写if (Key=VK_UP) or (Key=VK_DOWN) then
ComboBox.ItemIndex:=0; //索引为0表示选择Items属性列表的第一项
害我看了半天还以为你指出FrameSniper(人类不能不吃饭@手机不能不充电.net)的错误呢,结果是一模一样啊!
晕~~~~~~~~~~
不如把combobox1.ItemIndex := 0
放在OnChange事件中.
移动上下键,让COMBOBOX的text内只显示姓名,而不显示编号。并不是第一个数据。
但是combobox内的显示还是 '0001 张三'
begin
ComboBox.ItemIndex:=0;
ComboBox.Text:=RightStr(ComboBox.Text,7,Length(ComboBox.Text)-7); //假设你前面的数字编号加空格是7位
end;
这个方法也不行,COMBOBOX.TEXT里面还是会显示'0002 李四';
有一个Strings 是
0001 张三
0002 李四
0003 王五
他要显示在combobox里的内容只是
张三
李四
王五
实际上就是截断几个字符串
我以前也曾经做过类似的工作
好像挺麻烦的,我记得那次好像也想过用RightStr(……),不过好像没成功,后来调了半天,套了一堆函数,挺辛苦的,源代码找不到了,因为那时我大四第一学期的事了,我现在也没有时间试,单位的机器上没有Delphi,爱莫能助ing。
Sorry
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=VK_UP) or (Key=VK_DOWN) then
ComboBox1.Text:=Copy(ComboBox1.Items[0],7,4);
end;
Shift: TShiftState);
begin
if (Key=VK_UP) or (Key=VK_DOWN) then
ComboBox1.Text:=Copy(ComboBox1.Items[0],7,4);
end;
ComboBox1.Items[0]
我要的不是第一个,要COMBOBOX1.SELTEXT,可为什么返回来的是空值
showmessage(trim(copy(combobox2.SelText,1,6)));
为什么返回的是空值。