已知:原来控件OPTIONBUTTON中caption中可以显示sText
optThumb(i).ForeColor = &HFFFFFF
optThumb(i).Font = 24
optThumb(i).BackColor = optSelect(1).BackColor
sText = "Table: " & sPD & vbCrLf & "Total:" & sPN & vbCrLf & "seats:" & sPT     
optThumb(i).ToolTipText = sText
.
.
optThumb(i).Caption = sText现在我找了个控件JCBUTTON,代码跟上面一样,但是caption只显示"Table: " & sPD &  
显示不了vbCrLf & "Total:" & sPN & vbCrLf & "seats:" & sPT  
然后鼠标点控件上面可以显示全部      
是不是vbcrlf这个分行符在新控件中无法识别.请问怎么解决?

解决方案 »

  1.   

    1)Font 属性使用不正确
    2)强制调用一下该控件的刷新试试
      

  2.   

    用API解决吧,参考一下这个:'clsTooptip
    '使用范例:
    'Dim tooltip As New Class1
    'Set tooltip.ParentControl = Text1 '气泡应用于哪个控件(要有Hwnd)
    'tooltip.ToolTipTitle = "气泡标题" '气泡标题(不允许换行/字体粗体)
    'tooltip.ToolTipText = "气泡内容" & vbCrLf & "123" '气泡内容(允许换行)
    'tooltip.Create '创建气泡Option ExplicitPrivate Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long '创建窗口
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long '发出消息
    Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Private Const WM_USER = &H400
    Private Const CW_USEDEFAULT = &H80000000Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
    End TypePrivate Const TTS_NOPREFIX = &H2
    Private Const TTF_TRANSPARENT = &H100
    Private Const TTF_CENTERTIP = &H2
    Private Const TTM_ADDTOOLA = (WM_USER + 4)
    Private Const TTM_ACTIVATE = WM_USER + 1
    Private Const TTM_UPDATETIPTEXTA = (WM_USER + 12)
    Private Const TTM_SETMAXTIPWIDTH = (WM_USER + 24)
    Private Const TTM_SETTITLE = (WM_USER + 32)
    Private Const TTS_BALLOON = &H40
    Private Const TTF_SUBCLASS = &H10
    Private Const TOOLTIPS_CLASSA = "tooltips_class32"Private Type TOOLINFO
        lSize As Long
        lFlags As Long
        lHwnd As Long
        lId As Long
        lpRect As RECT
        hInstance As Long
        lpStr As String
        lParam As Long
    End TypePrivate TTTitle As String
    Private TTParentControl As Object
    Private TTStyle As TTStyleEnumPublic Enum TTStyleEnum
        TTStandard
        TTBalloon
    End EnumPrivate hToolTipHwnd As Long
    Private TI As TOOLINFOPublic Function Create() As Boolean '创建气泡函数
        Dim lpRect As RECT
        DestroyWindow hToolTipHwnd
        '建立tooltip窗口
        hToolTipHwnd = CreateWindowEx(0, TOOLTIPS_CLASSA, vbNullString, TTS_BALLOON, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, TTParentControl.hwnd, 0, App.hInstance, 0)
        GetClientRect TTParentControl.hwnd, lpRect
        '设置tooltip
        With TI
            .lFlags = TTF_SUBCLASS
            .lHwnd = TTParentControl.hwnd
            .lId = 0
            .hInstance = App.hInstance
            .lpRect = lpRect
        End With
        SendMessage hToolTipHwnd, TTM_ADDTOOLA, 0, TI
        '给tooltip加上标题
        SendMessage hToolTipHwnd, TTM_SETTITLE, 0, ByVal TTTitle
    End FunctionPublic Property Set ParentControl(ByVal vData As Object) '确定tooltip对象(要求有hwnd的控件)
        Set TTParentControl = vData
    End PropertyPublic Property Let ToolTipTitle(ByVal vData As String) '设置tooltip的标题
        TTTitle = vData
        SendMessage hToolTipHwnd, TTM_SETTITLE, 0, ByVal TTTitle
    End PropertyPublic Property Let ToolTipText(ByVal vData As String) '设置tooltip的文本(支持多行)
        TI.lpStr = vData
        SendMessage hToolTipHwnd, TTM_UPDATETIPTEXTA, 0, TI
    End Property
      

  3.   

    控件高度调高点刷新试试,
    或者开始时调用一下
        JCBUTTON.SetFocus
        SendKeys "{ENTER}"
    看是否有效.
      

  4.   

    SetFocus方法用在Form_Activate里面
      

  5.   

    JCBUTTON控件看来不满足要求,只有帮你做个了