如何让TEdit不能获取焦点

时间:2022-10-10 20:29:26
对于TEdit和Tlable控件它们各有用处。

但是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);//加这一句颜色就不是灰色了

#2


liangqingzhi(老之)  朋友提供的:

  Edit1.BorderStyle:=bsNone;
  Edit1.ParentColor:=True;
  Edit1.Enabled:=False;
  SendMessage(Edit1.Handle,WM_ENABLE,1,0);
非常不错,实现起来也简单;

但是当Edit1变成label效果的时候,它的位置发生了变化,好像向上提高了位置;

有什么办法让Edit1显示效果变化后位置不变;

#3


这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?

#4


回复人: liangqingzhi(老之)
   这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
  
 
正常人是不能理解的。

#5


回复人: ahjoe(强哥) ( ) 信誉:106  2005-11-28 08:24:00  得分: 0  
 
 
   回复人: liangqingzhi(老之)
   这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
  
 
正常人是不能理解的。
  
 

#6


我是想实现这样的效果: 当信息可以编辑的时候,就让它变成可编辑的Edit,当信息不能编辑的时候,就让它变成Label效果。

#7


用两个控件吧,当不让编辑时
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);//加这一句颜色就不是灰色了

#2


liangqingzhi(老之)  朋友提供的:

  Edit1.BorderStyle:=bsNone;
  Edit1.ParentColor:=True;
  Edit1.Enabled:=False;
  SendMessage(Edit1.Handle,WM_ENABLE,1,0);
非常不错,实现起来也简单;

但是当Edit1变成label效果的时候,它的位置发生了变化,好像向上提高了位置;

有什么办法让Edit1显示效果变化后位置不变;

#3


这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?

#4


回复人: liangqingzhi(老之)
   这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
  
 
正常人是不能理解的。

#5


回复人: ahjoe(强哥) ( ) 信誉:106  2005-11-28 08:24:00  得分: 0  
 
 
   回复人: liangqingzhi(老之)
   这是因为Edit1.BorderStyle:=bsNone;没有了边框,字体已经不是再中间了。
很奇怪,楼主为什么不直接用TLabel呢?
  
 
正常人是不能理解的。
  
 

#6


我是想实现这样的效果: 当信息可以编辑的时候,就让它变成可编辑的Edit,当信息不能编辑的时候,就让它变成Label效果。

#7


用两个控件吧,当不让编辑时
Label1.Visible := True
Edit1.Visible := False
需要编辑时
Label1.Visible := False
Edit1.Visible := True