再问一个简单的问题(20分)

  • 主题发起人 主题发起人 嫩手
  • 开始时间 开始时间

嫩手

Unregistered / Unconfirmed
GUEST, unregistred user!
combobox1它的item中有30个值,我想在edit中输入其中一个值,怎么写代码实现combobox
它的text值同edit 的text值一样呢?
如:combobox1.item值:
aa
bb
cc
dd
...
我在edit中输入cc,combobox1它的text值也跟着变成cc
注:combobox1.style是csDropDownList
 
combobox.itemindex 属性
第一个是0,下面递增
 
for i:=0 to combox1.items.count-1 do
begin
if edit1.text=combox1.items.string then
combox1.itemindex=i
end
 
在Edit1的onkeypress事件中:
combox1.itemindex := Combox1.items.indexof(Trim(Edit1.text))
 
不行呀,是空的
注:combobox1.style是csDropDownList
 
你这个想法有问题。应该是在combox中选定某个值,然后Edit跟着变化。要不然有很多麻烦。
第一:在edit中不知道combox中有什么,知道也麻烦,记不注。
第二:在edit中要严格输入跟combox中一样的东西,这未免也太刁难人了吧。
 
[:(!][:(][:(][:(][:(]
 

[8D][8D][8D][8D][8D][8D][8D]
procedure TForm1.Edit1Change(Sender: TObject);
var
i:integer;
begin
for i:= 0 to combobox1.Items.Count do
begin
combobox1.itemindex :=i;
combobox1.Text :=combobox1.items[combobox1.itemindex];
if edit1.Text =combobox1.text then
begin
combobox1.Text :=combobox1.items[combobox1.itemindex];
break;
end
else
combobox1.text :='';
end;
end;
[8D][8D][8D][8D][8D][8D][8D]
 
你这个总是得到最后一个,得不到想要的数据,能再帮帮看看吗?
 
procedure TForm1.Edit1Change(Sender: TObject);
var
i:Integer;
begin
for i:=0 to ComboBox1.Items.Count-1 do
begin
if ComboBox1.Items=Edit1.Text then
begin
ComboBox1.ItemIndex:=i;
exit;
end;
end;
end;
 
我測試很正常呀!!!so simple!!!you do
n't want to give me score,haha
you are wrong. please test it yourself.
[8D][8D][8D][8D][8D][8D][8D]
[8D][8D][8D][8D][8D][8D][8D]
 
在Edit1的onkeypress事件中:
combox1.itemindex := Combox1.items.indexof(Trim(Edit1.text))
这样是可以的,你的combox1中必须有你在edit1中输入的值,因为上一语句的作用是,每键入
一个字符,就在combox1中查找一下,有没有匹配的,如果有就设为combox1的当前值.
我没有测试过,具体你自己试试就知道了
 
很简单
procedure TForm1.Edit1Change(Sender: TObject);
begin
ComboBox1.itemindex := ComboBox1.items.indexof(Edit1.text);
end;
 
procedure TForm1.Edit1Change(Sender: TObject);
begin
ComboBox1.itemindex:= ComboBox1.items.indexof(Edit1.text);
end;
 
如果在Button事件中怎么写?
 
曾經的好!
簡潔!
不要用onkeypress因為它是先執行貸嗎,在得到Key
 
算了,还是发分吧,希望以后有更好的办法告诉我
 
后退
顶部