技术开发 频道

实现ComboBox输入文字的自动完成


【IT168技术文档】
WORD lastkey ; //--------------------------------------------------------------------------- void __fastcall TForm1::ComboBox1Change(TObject *Sender) { String value = ComboBox1->Text ; // If the user tried to delete he must not want to change anything. if (lastkey == '\b' || lastkey == VK_DELETE) { lastkey = 0 ; return ; } lastkey = 0 ; // 确保使用者没有在中间插入字符 if (ComboBox1->SelStart != value.Length ()) return ; // 在下拉列表中寻找匹配项. int index = SendMessage (ComboBox1->Handle, CB_FINDSTRING, -1, (LPARAM) value.c_str ()) ; if (index >= 0) { // 找到匹配项并显示. ComboBox1->ItemIndex = index ; String newtext = ComboBox1->Text ; SendMessage (ComboBox1->Handle, CB_SETEDITSEL, 0, MAKELPARAM (value.Length (), -1)) ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::ComboBox1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { // 按下的最后一个键值. lastkey = Key ; } //---------------------------------------------------------------------------

0
相关文章