Dim strRTF As String
strRTF = RichTextBox.TextRTF
结束时让strRTF与RichTextBox.TextRTF做比较,不一样就说明被修改过

解决方案 »

  1.   

    如果你的RichTextBox.TextRTF太大一个String装不下,就用另一个不可见的RichTextBox代替这个String
      

  2.   

    RichTextBox不是有Changed事件吗?用个boolean变量来记录一下就行了。
    dim xchange as boolean
    private sub Richtextbox1_change()
    xchange=true
    end sub
    private sub Form1_close()
     if xchange then
       '....
     end if
    end sub
      

  3.   

    最初我的思想就是利用change时间,楼上的这位我不太理解,修改标志该如何设置呢?每个地方都有可能被修改~
      

  4.   

    vbyesnocancel如何调用它的值?也就是如果选是发生什么事件,选否发生什么事件这样的?俺初学,比较菜,望各位高手指教
      

  5.   

    dim tempstr as string
    tempstr = msgbox("aaa",vbyesnocancel)
    select case tempstr
     case vbyes
         你的代码
     case vbno
         你的代码
     case vbcancel
         你的代码
    end select
      

  6.   

    又碰到一个问题,我用richtextbox写完程序编译后运行时,输入空格会发生错误,返回说的是“无效属性值”,这是怎么回事?我该如何改好
      

  7.   

    很简单啊,用它的change事件啊 ̄!!!
      

  8.   

    添加修改标志m_bModified,程序如下:
    Dim m_bModified As Boolean
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        Dim msg
        If m_bModified Then
            msg = MsgBox("文档已修改,要保存吗?", vbYesNoCancel + vbQuestion)
            If msg=vbYes Then
                RichTextBox1.SaveFile FileName
            End If
        End If
    End Sub
    Private Sub RichTextBox1_Change()
        m_bModified = True
    End Sub
    当RichTextBox1中的内容被修改时都会触发Change事件,m_bModified都被置为True。对于vbYesNoCancel,用msg取得返回用户的选择,如果选择为vbYes,表示用户按了“是”按钮,然后再保存。
      

  9.   

    接上面我说的,如果你保存过,就在保存代码执行后加上:
    xchange=false
    以表明当前RichTextBox中的内容至今未曾修改后。当修改后触发了OnChange,在RichTextBox1_Change中使用xchange=true表明内容已修改,退出时Form_QueryUnload查看xchange的值,如果为true则使用msgbox提示是否保存或取消,再执行相应的操作;否则表明未修改,直接退出即可。