none
richtextbox1的undo不起作用了 RRS feed

  • 问题

  • 按照帖子http://social.microsoft.com/Forums/zh-CN/vbasiczhchs/thread/0cde69ad-bf6d-4dc9-bec7-314f7ee4abde中老师的指导,我将richtextbox1.text的内容复制到一个变量中,解决了输入法的问题,今天发现了一个新问题就是我的undo不起作用了。
    我进行过测试,再如下情况undo不起作用:

        Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
            zgdata = RichTextBox1.Text
            MsgBox(" sdf")
    End Sub
    在如下情况undo起作用:

        Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
            'zgdata = RichTextBox1.Text
            MsgBox(" sdf")
    End Sub

    但如果去掉了zgdata = RichTextBox1.Text这一行,我的输入法问题又不能解决了,请问老师们这个问题如何解决?谢谢!!!

    2010年3月4日 1:05

答案

全部回复

  • 你好!
         我估计你这行zgdata = RichTextBox1.Text里的zgdata变量的不正确使用,导致你undo的结果被覆盖了,因为zgdata中保存的是新值!
    周雪峰
    2010年3月4日 3:03
    版主
  • 我就是按照老师说的把richtextbox1.text中的内容在每次changed的时候复制给字符串zgdata,然后所有的操作对zgdata进行操作,这样就不影响richtextbox1.text的中文正常输入了,undo是richtextbox1.text的方法,我并没有对richtextbox1.text进行操作,应该不会影响到undo。
    2010年3月4日 6:01
  • 会影响Undo的,因为zgdata中是改动以后的新值,这样你使用的也是新值了!
    周雪峰
    2010年3月4日 6:11
    版主

  • 我考虑过自己写一个undo,但是在changed中加了zgdata=richtextbox1.text以后,但编辑的内容太大时严重影响速度,如果再加undo的代码,程序会极慢。
    请问老师有什么办法解决这个问题不?谢谢!

    2010年3月5日 0:46