首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

如何实现下面的这种效果

2013-07-08 
怎么实现下面的这种效果?我不想用combobox[解决办法]自己弹一个alwaysontop的没有边框窗体出来。[解决办法]

怎么实现下面的这种效果?
我不想用combobox
如何实现下面的这种效果
[解决办法]
自己弹一个alwaysontop的没有边框窗体出来。

[解决办法]
用edit加memo or listview就可以自己控制了
[解决办法]

引用:
Quote: 引用:

自己弹一个alwaysontop的没有边框窗体出来。
你说的在哪里设置啊?
我查到一个链接,很好用,你看看http://bbs.csdn.net/topics/360160938


放一个Edit,那里输入,在Edit的OnChange事件里面加一些处理:当Edit不为空时,在Edit下面显示出一个ListBox(ListBox1.Visible := True),并且把和输入相关的内容显示到ListBox中;当Edit的Text为空时,则将ListBox隐藏起来(ListBox1.Visible := False);
例如:当你在Edit中输入“地下”时,马上把ListBox中显示和“地下”相关的内容
[解决办法]
或者用一个edit和一个listbox模拟

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    lst1: TListBox;
    edt1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure edt1Click(Sender: TObject);
    procedure edt1Exit(Sender: TObject);
    procedure lst1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  edt1.Text := '';
  lst1.Hide;
 // 随便加几项
  lst1.Items.Add('dsfsfsff');
  lst1.Items.Add('多少顺丰到付');
  lst1.Items.Add('xzxccvvxv');
  lst1.Items.Add('dsf的23233sfsff');

  lst1.Top := edt1.Top + edt1.Height;
  lst1.Left := edt1.Left;
  lst1.Width := edt1.Width;
  lst1.Height := lst1.ItemHeight * lst1.Items.Count + 4;
end;

procedure TForm1.edt1Click(Sender: TObject);
begin
  if lst1.Items.Count > 0 then
    lst1.Show;
end;

procedure TForm1.edt1Exit(Sender: TObject);
begin
  lst1.Hide;
end;

procedure TForm1.lst1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin 
  lst1.ItemIndex := lst1.ItemAtPos(Point(x, y), True);


end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if PtInRect(ClientRect, Point(x, y)) then
    lst1.Hide;
end;

end.

热点排行