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

怎么制作这种效果,鼠标点上去提示的内容就没了

2012-02-15 
如何制作这种效果,鼠标点上去提示的内容就没了?Edit控件里面输入要提示的内容,鼠标单击,提示内容消失?效果

如何制作这种效果,鼠标点上去提示的内容就没了?
Edit控件里面输入要提示的内容,鼠标单击,提示内容消失?效果图“右上角的搜索框”

[解决办法]
设置Formcreate事件中改变Edit的Text属性,即初始文本
然后设置Edit的OnClick(鼠标点击)或OnEnter(获得焦点)事件,用Edit的Clear方法即可

下面是个OnEnter的例子,因为程序中只有Edit1,所以一开始就获得焦点,没有初始化的内容。

Delphi(Pascal) code
interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;type  TForm1 = class(TForm)    Edit1: TEdit;    procedure FormCreate(Sender: TObject);    procedure Edit1Enter(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin  Edit1.Text:='初始化的内容';end;procedure TForm1.Edit1Enter(Sender: TObject);begin  Edit1.Clear;end;end.
[解决办法]
http://blog.csdn.net/delphiteacher/article/details/6707470
Delphi(Pascal) code
unit SkinHintEdit;interfaceuses  Windows,Classes,Controls,SysUtils,Messages,StdCtrls,Forms,  Graphics;const  //提示文字颜色  CONST_DEF_HELPTEXT_FONTCOLOR=clGray;  CONST_DEF_HELPTEXT_FONTNAME='Tahoma';  CONST_DEF_HELPTEXT_FONTSIZE=9;  CONST_DEF_HELPTEXT_FONTSTYLE=[];type  //正常的可以自定义边框的文本框TSkinHintEdit:  TSkinHintEdit=class(TCustomEdit)  private    FHelpText: WideString;    FHelpTextFont: TFont;    procedure SetHelpText(const Value: WideString);    procedure SetHelpTextFont(const Value: TFont);  protected    procedure WMPaint(var Message:TMessage);message WM_PAINT;  public    constructor Create(AOwner:TComponent);override;    destructor Destroy;override;  published    ///////////////自定义扩展属性/////////////////    //指导性文字字体颜色    property HelpTextFont:TFont read FHelpTextFont write SetHelpTextFont;    //指导性文字    property HelpText:WideString read FHelpText write SetHelpText;    ///////////////默认文本框自带属性////////////    property Align;    property Alignment;    property Anchors;    property AutoSelect;    property AutoSize;    property BevelEdges;    property BevelInner;    property BevelKind default bkNone;    property BevelOuter;    property BevelWidth;    property BiDiMode;    property BorderStyle;    property CharCase;    property Color;    property Constraints;    property Ctl3D;    property DoubleBuffered;    property DragCursor;    property DragKind;    property DragMode;    property Enabled;    property Font;    property HideSelection;    property ImeMode;    property ImeName;    property MaxLength;    property NumbersOnly;    property OEMConvert;    property ParentBiDiMode;    property ParentColor;    property ParentCtl3D;    property ParentDoubleBuffered;    property ParentFont;    property ParentShowHint;    property PasswordChar;    property PopupMenu;    property ReadOnly;    property ShowHint;    property TabOrder;    property TabStop;    property Text;    property TextHint;    property Touch;    property Visible;    property OnChange;    property OnClick;    property OnContextPopup;    property OnDblClick;    property OnDragDrop;    property OnDragOver;    property OnEndDock;    property OnEndDrag;    property OnEnter;    property OnExit;    property OnGesture;    property OnKeyDown;    property OnKeyPress;    property OnKeyUp;    property OnMouseActivate;    property OnMouseDown;    property OnMouseEnter;    property OnMouseLeave;    property OnMouseMove;    property OnMouseUp;    property OnStartDock;    property OnStartDrag;  end;procedure Register;implementationprocedure Register;begin  RegisterComponents('SkinEngine',[TSkinHintEdit]);end;{ TSkinHintEdit }constructor TSkinHintEdit.Create(AOwner: TComponent);begin  FHelpText:='';  //提示文字颜色  FHelpTextFont:=TFont.Create;  FHelpTextFont.Color:=CONST_DEF_HELPTEXT_FONTCOLOR;  FHelpTextFont.Name:=CONST_DEF_HELPTEXT_FONTNAME;  FHelpTextFont.Size:=CONST_DEF_HELPTEXT_FONTSIZE;  FHelpTextFont.Style:=CONST_DEF_HELPTEXT_FONTSTYLE;  inherited Create(AOwner);end;destructor TSkinHintEdit.Destroy;begin  FreeAndNil(FHelpTextFont);  inherited;end;procedure TSkinHintEdit.SetHelpText(const Value: WideString);begin  FHelpText := Value;end;procedure TSkinHintEdit.SetHelpTextFont(const Value: TFont);begin  FHelpTextFont.Assign(Value);  Invalidate;end;procedure TSkinHintEdit.WMPaint(var Message: TMessage);var  ClientDC:HDC;  ClientCanvas:TCanvas;  HelpTextDrawLeft,  HelpTextDrawTop:Integer;begin  Inherited;  if Not Focused and (Text='') and (HelpText<>'') then  begin    ClientDC:=GetDC(Handle);    Try      ClientCanvas:=TCanvas.Create;      ClientCanvas.Handle:=ClientDC;      ClientCanvas.Font.Assign(FHelpTextFont);      HelpTextDrawLeft:=0;      HelpTextDrawTop:=(Height-ClientCanvas.TextHeight(FHelpText) ) div 2-2;      ClientCanvas.TextOut(HelpTextDrawLeft,HelpTextDrawTop,FHelpText);    Finally      ReleaseDC(Handle,ClientDC);      ClientCanvas.Free;    End;  end;end;end. 

热点排行