Delphi中如何使用TEdit控件和TListBox控件组合使用达到TComboBox控件一样的效果呢?

如何用TEdit控件+TListBox控件实现和TComboBox控件一样的效果呢?
首先:
向界面拖一个TEdit控件和TListBox控件,将TListBox控件放到TEdit控件正下方。
取名分别为:edt1和lstbox。

其次:
给TEdit控件添加一个OnClick事件或者OnKeyDown事件,例如:OnClick事件。
procedure Tfmainform.edt1Click(Sender: TObject);
begin
  lstbox.Show;
  lstbox.SetFocus;
  lstbox.ItemIndex := 0;
end;

或者:添加键盘上个的KeyDown事件(记键盘上的PgDn键子)
procedure Tfmainform.edt1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if Key = vk_next then
  begin
    lstbox.Show;
    lstbox.SetFocus;
    lstbox.ItemIndex := 0;
  end;
end;

最后:
给TListBox控件添加一个双击事件,例如:OnDbClick事件。
procedure Tfmainform.ListBoxDblClick(Sender: TObject);
begin
  edt1.Text := lstbox.Items[lstbox.itemIndex];
  lstbox.Hide;
end;

这样我们就实现了一个和TComboBox控件一样的效果了。

你可能感兴趣的:(Delphi区,Delphi,TEdit,TListBox,TComboBox,控件)