如题如果有现成控件的化,最好有源码

解决方案 »

  1.   

    简单的做法:textbox做成label风格。不过textbox可以有焦点。焦点取得时把它移到别的控件上。
    只会这么多了!
      

  2.   

    Label一行不只顯示128個漢字吧?
        Dim i As Integer
        Dim c As Integer
        Dim d As Integer
        Label1.Caption = ""
        For i = 1 To 200
            Label1.Caption = Label1.Caption + "梁"
        Next
        
        d = 0
        For c = 1 To Len(Label1.Caption)
            If Mid(Label1.Caption, c, 1) = "梁" Then
                d = d + 1
            End If
        Next
        MsgBox d
        
        顯示d的值為200
      

  3.   

    Label得值可以超过256字节,但是显示的时候只能显示128个
    =====================================================
    up!
      

  4.   

    可以做成自定义控件,把一个Textbox放进去,自定义所有的属性和Label一臻,再把UserControl的Enabled设为False,这样的话程序运行时Textbox就得不到焦点,并且字的颜色也不会变为灰色。
    exp:
    UserControl1:
    Option ExplicitPublic Property Get Caption() As String
        Caption = Text1.Text
    End PropertyPublic Property Let Caption(ByVal vText As String)
        Text1.Text = vText
    End PropertyPrivate Sub UserControl_Initialize()
        Text1.Left = 0
        Text1.Top = 0
    End SubPrivate Sub UserControl_ReadProperties(PropBag As PropertyBag)
        PropBag.ReadProperty "Caption", "Label1"
    End SubPrivate Sub UserControl_Resize()
        Text1.Height = UserControl.Height
        Text1.Width = UserControl.Width
    End SubPrivate Sub UserControl_WriteProperties(PropBag As PropertyBag)
        PropBag.WriteProperty "Caption", Text1.Text, "Label1"
    End Sub
    Form1:
    Private Sub Form_Load()
        Dim i As Integer
        UserControl11.Caption = ""
        For i = 1 To 200
            UserControl11.Caption = UserControl11.Caption + "我"
        Next
    End Sub
      

  5.   

    To xhggg(xh):
       你说的对,我没考虑过。虽然可以提供'Label'的背景色,但两个'Label'在一起会遮挡,比不上Label控件的'透明'属性。       我在这里是提供一种思路而已,也希望大家提一下自己的思路,共同学习。
      

  6.   

    为什么非用LAGEL别的不行吗?
    人是活的!
      

  7.   

    因为我要在一行里面显示一个不定长(几百个字左右)的字符串。
    Label有Autosize属性很方便。
    用Text就要自己判断长度,改变宽度,感觉比较麻烦。
      

  8.   

    把lable控件的高度设大点,显示为两行不行吗?
      

  9.   

    分行显示
    Private Sub Command1_Click()
    Label1.Caption = "王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王" _
                    & Chr(10) & Chr(13) & "王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王" _
                    & Chr(10) & Chr(13) & "王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王" _
                    & Chr(10) & Chr(13) & "王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王" _
                    & Chr(10) & Chr(13) & "王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王" _
                    & Chr(10) & Chr(13) & "王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王" _
                    & Chr(10) & Chr(13) & "王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王" _
                    & Chr(10) & Chr(13) & "王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王" _
                    & Chr(10) & Chr(13) & "王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王王"
    End Sublen(label1.caption)=466
      

  10.   

    因为要作成透明的跑马灯的效果,所以要一行,我现在是用动态数组空间作的。虽然len(label1.caption)=466但是显示的只有前面一部分还想看看能不能实现
    up
      

  11.   

    LABEL1控件加宽一些,使用代码来加值:
    Label1.Caption = "4444444444444444444444444444444444444444444444444444444444" _
                    & Chr(10) & Chr(13) & 22222222222222222222222222222222244444" _
                    & Chr(10) & Chr(13) & "444444444444444444444444444444444444444"_
                   & chr(10) & chr(13) & "54456465465456465456464546456465465465"
    就这样一值加可发超过。
      

  12.   

    在工具箱中单击右键选
    部件-->控件-->Microsoft Forms 2.0 Object Library
    该部件中有Label控件(2.0版),可以实现你的目标,不过不知道该控件是否也有字数限制,自己试试吧!
      

  13.   

    LABEL数组实现:
    Dim a(4) As StringPrivate Sub Command1_Click()
    Timer1.Enabled = True
    Timer1.Interval = 50
    End SubPrivate Sub Form_Click()
    Timer1.Enabled = False
    End SubPrivate Sub Form_Load()For i = 0 To 4
    a(i) = String(200, Chr(i + 65))
    Label1(i).BorderStyle = 0
    Label1(i).AutoSize = True
    Next
    Label1(0).Left = Me.Left + Me.Width
    Label1(0).Top = 2000
    Label1(0).Caption = a(0)
    For i = 1 To 4
    Label1(i).Caption = a(i)
    Label1(i).Left = Label1(i - 1).Left + Label1(i - 1).Width
    Label1(i).Top = Label1(0).Top
    Next
    End Sub
      

  14.   

    For i = 1 To 300
            If Len(Label1.Caption) >= 128 Then
                Label2.Caption = Label2.Caption + "王"
            End If
            Label1.Caption = Label1.Caption + "王"
        Next i
        Label2.Left = Label1.Left + Label1.Width
      

  15.   

    For i = 1 To 300
            If Len(Label1.Caption) >= 128 Then
                Label2.Caption = Label2.Caption + "王"
            Else
            Label1.Caption = Label1.Caption + "王"
            End If
            
        Label2.Left = Label1.Left + Label1.Width
        Next i
      

  16.   

    多用几个label就行了,如果用MS forms2.0 的label做成透明的,看不出是多个label