到网上查查类似控件,richtextbox功能太弱

解决方案 »

  1.   

    我也在做这个,我现在的做法是,直接在RichTextBox 控件内插入一个Word公式对象。'插入公式代码示例
    Private Sub mnuFormula_Click()
        
    '    On Error GoTo ErrorHandler
        
        Dim rtbSelected As RichTextBox
        Set rtbSelected = GetCurrentRTB()  '当前RTB得到焦点
        If Not rtbSelected.OLEObjects Is Nothing Then
            If rtbSelected.OLEObjects.Count > 0 Then
                rtbSelected.OLEObjects.Remove (0)
            End If
        End If
        rtbSelected.OLEObjects.Add , , , "Equation.3"
        
        GoTo LastDealErrorHandler:
        Call msgInfoBoxByErr(Err)
    LastDeal:End Sub但这只能利用Word的公式编辑器的功能,有很大的局限性。最好的办法就是直接插入word对象。也就变成了在word中直接编辑,编辑完成后自动插入到RTB框内。'===============================================================================
    ' 输    入:在richtextbox框中插入Word文栏
    ' 输    出:
    ' 修改时间:2001-10-14
    ' 功能描述:在richtextbox框中插入Word文栏
    '===============================================================================
    Public Sub InsertWord(ByRef rtbSelected As RichTextBox)
        
        On Error GoTo ErrorHandler
        
        Dim intCount As Integer
        Dim m_objWord As Object
      
        If rtbSelected.OLEObjects.Count > 0 Then
            rtbSelected.OLEObjects.Remove (0)
        End If
        Set m_objWord = CreateObject("word.application")
        rtbSelected.SetFocus
        intCount = rtbSelected.OLEObjects.Count
    '暂定仅能搜入一个OLE
        If intCount = 0 Then
            rtbSelected.OLEObjects.Add , , , "Word.Document.8"
        End If
        rtbSelected.OLEObjects.Item(0).DoVerb (-2)
        m_objWord.ActiveDocument.Application.Run "autoexec"
        m_objWord.Quit True
        Set m_objWord = Nothing
        
        GoTo LastDealErrorHandler:
        Call RaiseErrorByErr(Err)
    LastDeal:End Sub
    希望对你有所启示。