Edit怎么添加提示输入的文字和图片?
打开窗体时Edit是这样的:
如何点击Edit后这样了:
没输入任何内容,鼠标离开(Edit失去焦点)后又恢复了:
很多搜索框都有上面类似功能的,就是不知大家是怎么实现的,所有发帖求提示求方法
(我想到一个比较麻烦的办法是在Edit上加个Label,当鼠标点击进入时就隐藏label,当鼠标离开时判断是否有输入内容,没时就显示label)
[解决办法]
放一个图片和两个重叠的文本框,获得焦点的时候,把图片和有文字的文本框隐藏掉,失去焦点则把他show出来
[解决办法]
借助edit的tag属性,tag属性默认为0,当输入文字后,tag :=1,鼠标离开时,如果没有内容,判断tag :=0,然后显示默认文字
[解决办法]
edit的事件
OnEnter时判断是否是你的提示信息 是则显示空
OnExit时判断是否空 空则继续显示你的提示信息
[解决办法]
const strHint='请输入关键字查找...';Form1的onCreate: Edit1.Text=strHintEdit1的onEnter: if Edit1.Text=strHint then Edit1.Text:=''; Edit1.Font.Color:= clWindowText;Edit1的onExit: if Edit1.Text='' then Edit1.Text:=strHint; if Edit1.Text=strHint then Edit1.Font.Color:= clGrayText;
[解决办法]
自己派生一个新类出来。如果是 DELPHI XE的话,本身有这个组件 TButtonedEdit
TCustomButtonedEdit = class(TCustomEdit) private FCanvas: TControlCanvas; FImages: TCustomImageList; FImageChangeLink: TChangeLink; FLeftButton: TEditButton; FRightButton: TEditButton; function AdjustTextHint(Margin: Integer; const Value: string): string; procedure ImageListChange(Sender: TObject); procedure SetImages(const Value: TCustomImageList); function GetOnLeftButtonClick: TNotifyEvent; function GetOnRightButtonClick: TNotifyEvent; procedure SetLeftButton(const Value: TEditButton); procedure SetOnLeftButtonClick(const Value: TNotifyEvent); procedure SetOnRightButtonClick(const Value: TNotifyEvent); procedure SetRightButton(const Value: TEditButton); protected procedure DoSetTextHint(const Value: string); override; function GetEditButtonClass: TEditButtonClass; dynamic; procedure Notification(AComponent: TComponent; Operation: TOperation); override; procedure UpdateEditMargins; dynamic; procedure WndProc(var Message: TMessage); override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure DefaultHandler(var Message); override; property Images: TCustomImageList read FImages write SetImages; property LeftButton: TEditButton read FLeftButton write SetLeftButton; property RightButton: TEditButton read FRightButton write SetRightButton; property OnLeftButtonClick: TNotifyEvent read GetOnLeftButtonClick write SetOnLeftButtonClick; property OnRightButtonClick: TNotifyEvent read GetOnRightButtonClick write SetOnRightButtonClick; end;
[解决办法]
图片可以放在Edit的前边 里边的文字可以在进入和退出事情中处理