对于TEdit和Tlable控件它们各有用处。但是TEdit其实稍作变动,可以做出和Tlable一样的效果,
也就说可以用TEdit来完全代替Tlable。
具体设置:
Edit1.BorderStyle: = bsNone;
Edit1.ParentColor: = True;
经过这样一改,你会发现Edit和label外观一模一样。但是Tlabel是不能获取焦点的。如何让TEdit也不能获取焦点呢?不允许使用Edit1.Enable:=false;这样的方法,因为这样的话Edit的颜色是灰色,很难看

解决方案 »

  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