对于TEdit和Tlable控件它们各有用处。但是TEdit其实稍作变动,可以做出和Tlable一样的效果,
也就说可以用TEdit来完全代替Tlable。
具体设置:
Edit1.BorderStyle: = bsNone;
Edit1.ParentColor: = True;
经过这样一改,你会发现Edit和label外观一模一样。但是Tlabel是不能获取焦点的。如何让TEdit也不能获取焦点呢?不允许使用Edit1.Enable:=false;这样的方法,因为这样的话Edit的颜色是灰色,很难看
也就说可以用TEdit来完全代替Tlable。
具体设置:
Edit1.BorderStyle: = bsNone;
Edit1.ParentColor: = True;
经过这样一改,你会发现Edit和label外观一模一样。但是Tlabel是不能获取焦点的。如何让TEdit也不能获取焦点呢?不允许使用Edit1.Enable:=false;这样的方法,因为这样的话Edit的颜色是灰色,很难看
Edit1.ParentColor:=True;
Edit1.Enabled:=False;
SendMessage(Edit1.Handle,WM_ENABLE,1,0);//加这一句颜色就不是灰色了
Edit1.ParentColor:=True;
Edit1.Enabled:=False;
SendMessage(Edit1.Handle,WM_ENABLE,1,0);
非常不错,实现起来也简单;但是当Edit1变成label效果的时候,它的位置发生了变化,好像向上提高了位置;有什么办法让Edit1显示效果变化后位置不变;
很奇怪,楼主为什么不直接用TLabel呢?
这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
正常人是不能理解的。
回复人: liangqingzhi(老之)
这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
正常人是不能理解的。
Label1.Visible := True
Edit1.Visible := False
需要编辑时
Label1.Visible := False
Edit1.Visible := True