但是TEdit其实稍作变动,可以做出和Tlable一样的效果,
也就说可以用TEdit来完全代替Tlable。
具体设置:
Edit1.BorderStyle: = bsNone;
Edit1.ParentColor: = True;
经过这样一改,你会发现Edit和label外观一模一样。
但是Tlabel是不能获取焦点的。
如何让TEdit也不能获取焦点呢?
不允许使用Edit1.Enable:=false;这样的方法,因为这样的话Edit的颜色是灰色,很难看
7 个解决方案
#1
Edit1.BorderStyle:=bsNone;
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);//加这一句颜色就不是灰色了
#2
liangqingzhi(老之) 朋友提供的:
Edit1.BorderStyle:=bsNone;
Edit1.ParentColor:=True;
Edit1.Enabled:=False;
SendMessage(Edit1.Handle,WM_ENABLE,1,0);
非常不错,实现起来也简单;
但是当Edit1变成label效果的时候,它的位置发生了变化,好像向上提高了位置;
有什么办法让Edit1显示效果变化后位置不变;
Edit1.BorderStyle:=bsNone;
Edit1.ParentColor:=True;
Edit1.Enabled:=False;
SendMessage(Edit1.Handle,WM_ENABLE,1,0);
非常不错,实现起来也简单;
但是当Edit1变成label效果的时候,它的位置发生了变化,好像向上提高了位置;
有什么办法让Edit1显示效果变化后位置不变;
#3
这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
很奇怪,楼主为什么不直接用TLabel呢?
#4
回复人: liangqingzhi(老之)
这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
正常人是不能理解的。
这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
正常人是不能理解的。
#5
回复人: ahjoe(强哥) ( ) 信誉:106 2005-11-28 08:24:00 得分: 0
回复人: liangqingzhi(老之)
这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
正常人是不能理解的。
回复人: liangqingzhi(老之)
这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
正常人是不能理解的。
#6
我是想实现这样的效果: 当信息可以编辑的时候,就让它变成可编辑的Edit,当信息不能编辑的时候,就让它变成Label效果。
#7
用两个控件吧,当不让编辑时
Label1.Visible := True
Edit1.Visible := False
需要编辑时
Label1.Visible := False
Edit1.Visible := True
Label1.Visible := True
Edit1.Visible := False
需要编辑时
Label1.Visible := False
Edit1.Visible := True
#1
Edit1.BorderStyle:=bsNone;
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);//加这一句颜色就不是灰色了
#2
liangqingzhi(老之) 朋友提供的:
Edit1.BorderStyle:=bsNone;
Edit1.ParentColor:=True;
Edit1.Enabled:=False;
SendMessage(Edit1.Handle,WM_ENABLE,1,0);
非常不错,实现起来也简单;
但是当Edit1变成label效果的时候,它的位置发生了变化,好像向上提高了位置;
有什么办法让Edit1显示效果变化后位置不变;
Edit1.BorderStyle:=bsNone;
Edit1.ParentColor:=True;
Edit1.Enabled:=False;
SendMessage(Edit1.Handle,WM_ENABLE,1,0);
非常不错,实现起来也简单;
但是当Edit1变成label效果的时候,它的位置发生了变化,好像向上提高了位置;
有什么办法让Edit1显示效果变化后位置不变;
#3
这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
很奇怪,楼主为什么不直接用TLabel呢?
#4
回复人: liangqingzhi(老之)
这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
正常人是不能理解的。
这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
正常人是不能理解的。
#5
回复人: ahjoe(强哥) ( ) 信誉:106 2005-11-28 08:24:00 得分: 0
回复人: liangqingzhi(老之)
这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
正常人是不能理解的。
回复人: liangqingzhi(老之)
这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
正常人是不能理解的。
#6
我是想实现这样的效果: 当信息可以编辑的时候,就让它变成可编辑的Edit,当信息不能编辑的时候,就让它变成Label效果。
#7
用两个控件吧,当不让编辑时
Label1.Visible := True
Edit1.Visible := False
需要编辑时
Label1.Visible := False
Edit1.Visible := True
Label1.Visible := True
Edit1.Visible := False
需要编辑时
Label1.Visible := False
Edit1.Visible := True