combobox的智能问题?(100分)

  • 主题发起人 主题发起人 ddw
  • 开始时间 开始时间
D

ddw

Unregistered / Unconfirmed
GUEST, unregistred user!
1 在sytle=csDropDown,怎样才能让combobox的输入框里面,不允许输入items里面没有的内容
例:items里面包含如下内容

pk111
c522a
c5222
c524w
5cp9a
5pk9k
ac69k
2 或者在sytle=csOwnerDrawFixed的时候,虽然不能输入,但是当我在键盘上敲入c5222的时候,
自动跳到该项。
我发现当combobox在选择不能输入的情况下,就变得不智能了。
 
你可以在onchange事件里判断输入的内容啊,如果不在item里就为空啊
 
可以呀!Style:=csDropDownList;
 
sytle=csOwnerDrawFixed也是可以的,不过无论是sytle=csOwnerDrawFixed还是Style:=csDropDownList都必须要快,输入要快.
如果不符合你的要求你可以用另外一个Edit来输入,而在Edit的OnChange来自己找到Combobox中的符合条件的Item并把设为Combobox的ItemIndex.
 
to lcl_003:
如果为空,那很麻烦,还需要重新输入,最好是,例如c5222,当我输入了c5两个字符之后,
第三个字符我按下了q键,但是在输入框中,却不能输入但是c5还是保留,可以继续输入正确
的字符。
但是这样,我觉得好像工程挺繁琐。
to aizb:
如果选为csDropDownList,就不智能了,在普通的时候,可以使用autocomplete,但是在
csDropDownList的情况下,输入的内容,并不能使item自动转到相应内容。
 
to aizb:
要多快,我总不能要求客户加快输入速度吧。再说他们连键位都记不清楚呢。
另外,如果用另一个edit的话,我觉得和只用combobox好像没多大区别。
能否给个大概提示。

要不有没有其他控件有我说的功能。
 
TIECombobox.zip
简要介绍:当输入的文字与组合框的字符串列表中某个字符串的前部吻合的话,此字符串就会在输入框中显示出来
点击此处立即下载
http://www.tommstudio.com/newclub30/doaction.asp?action=download&type=kongjian&id=555
 
我怎么用着感觉和combobox很像阿。
好像也达不到我的要求。
 
//你可不可以在Combobox的OnExit事件里判断输入的值是否在列表中呢?,象这样:
procedure TForm1.ComboBox1Exit(Sender: TObject);
begin
if ComboBox1.Items.IndexOf(ComboBox1.Text) = -1 then
begin
Application.MessageBox('您输入不正确,请重新输入!', '提示', MB_OK + 64);
ComboBox1.SetFocus ;
Exit;
end;
end;
 
to svw0506
我采用了你的方法,谢谢。

也谢谢大家的热情帮助。
接受答案。
 
后退
顶部