由于没办法使一个label控件中字体有几种颜色,所以本人打算用两个控件上面一个做成透明的
如 label1.caption="科目,单位1,单位2"
  label2.caption="单位1"
  label2.ForeColor = RGB(255, 0, 0)  '成红色 
有谁知道一个字符的长度如何转换 使label2.left=label1.left+Len("科目,") * 多少单位
可以使字体恰好重合!
或用其它方法达到这种 一个label控件中字体变换几种颜色

解决方案 »

  1.   

    既然用了多个label,为什么还要重合呢?
    一个label显示单位,一个label显示科目不好么
      

  2.   

    label1.caption="科目,     ,单位2"
      label2.caption="单位1"
      label2.ForeColor = RGB(255, 0, 0)  '成红色 
    这样就好了,不用算
      

  3.   

    1、用几个Label不就行了;
    2、字体的大小(Font.Size)就是像素的
      

  4.   

    由于label1 一上显示的内容是可变的,它们是以“,”作分隔的
    要根据用户按下的键或选择的参数来随时跟踪用户的选择,达到智能提示的效果
      

  5.   

    你用label2一样可以变,他贴在label1上,label1预留这么长地方就可以了
      

  6.   

    求字符寬度可以用:
    Me.TextWidth(Label1.Caption),但要保證窗體字体與Label1的字体及字號等完全相同.
      

  7.   

    求字符長度可用:
    Me.TextWidth(label1.Caption),但要求Form的字體和Label1的字體及字號等完全要相同.
      

  8.   

    如现在我想提示用户输入到 单位2, 使 单位2 变为红色显示但label2的标题可以改变 但不能自动
    定位到 单位2的正上方的
    我这样做了
    Label2.Left = Label1.Left + Len("科目,单位1,") * 120 * vbTwips
    Label2.Caption = "单位2"
    好象是转换的单位不对,不能对齐
      

  9.   

    用Picture图片框画更方便Private Sub Form_Load()
      Picture1.BorderStyle = 0
      Picture1.AutoRedraw = True
      Picture1.Print "科目,";
      Picture1.ForeColor = &HFF
      Picture1.Print "单位1,";
      Picture1.ForeColor = &HFF0000
      Picture1.Print "单位2"
    End Sub
      

  10.   

    to : CatchWind(追風少年)  
    照你的方法已成功了
    to :tmd007 不是俺想要的那一种,随机改变不方便
    不过在此要谢谢各位的帮助了