我在练习做一个多文档的MDI文本编辑器,遇到下面几问题,望大家能帮帮忙:1、请问Windows自带的记事本中“自动换行”菜单是怎么实现的啊?
我本来以为是用文本框的ScollBars属性在程序运行中可以实现,但是不行2、在MDI窗体中,我需要记算其中一共是有几个文档窗口,新建一个时子窗体计数器加1,
关闭一个时计数器减1,但减1的代码我不知道应该写在哪一个事件里面,是不是有窗口的
关闭事件呢?,不会是_Queryunload()吧3、“打开”通用对话框中点击“取消”后就会出现错误:path/file access error
请问这个该怎么处理4、在“_queryunload”事件里面弹出一个和记事本一样的对话框,但是每次我点“取消”
都会把一个子窗体(或都整个应用程序)关掉,请问该怎么办才能不关掉窗体5、在开始运行程序的时候,MDI窗体中都会有一个子窗体,请问我该怎么办才能使开始运行时
没有子窗体存在6、请问在一个事件执行过程里面能不能禁止其它事件过程的执行7、请问如何获得已打开文件的路径,我想要在对一个打开的文本文件进行修改后进行保存
但不要打开保存对话框,是直接覆盖掉原来的文件内容8、在光标选中文本后,菜单中的“剪切”、“复制”、“删除”才变以可用的,该怎么处理,
是不是要写在一个Timer的Timer事件里面,我做了,在选取的时候可行,但是一旦关闭窗口就会
出现:object variable or with block variable not set 的错误,请问这个对象变量或模块
变量是指什么啊,或者是应该怎么处理呢??上面几个小问题请大家帮帮忙,小弟在此先谢了,谢谢!!

解决方案 »

  1.   

    2:在子窗体的Unload事件里减1
    3:CommonDialog1.CancelError = False 或on error goto CancelErr 捕获错误.
    4:if msgbox "是否退出?" = vbNo then cancel = true
      

  2.   

    5: 在MDIForm_Load()事件里不Show子窗体。
    7:CommonDialog控件就可以获得路径,CommonDialog.filename
    8:在编辑框的Mousemove事件里
      

  3.   

    5.在菜单中选"工程"--"属性",将"启动对象"设为你的MDI窗口就行了
    6.事件执行是有顺序的.
      

  4.   

    实际上TW版本的MSDN里面是有这样的一个例子的,但是chs版本没有,这样,我上传一个NOTEPAD的程序上去好了。wait.
      

  5.   

    ft,家里面的office有问题,偶转不了。
    我先放了一个繁体VB写的NOTEPAD带有繁体转换简体功能的。你先参考下吧http://www.iunknown.com.cn/anya/software/notepad.zip
      

  6.   

    第一道题中,multiline属性也不能在运行时候设置啊,这个问题还没有解决
    第六:请问在一个事件执行过程里面能不能禁止其它事件过程的执行,这个也还没有解决
    第七:请问如何获得已打开文件的路径,我想要在对一个打开的文本文件进行修改后进行保存
    但不要打开保存对话框,是直接覆盖掉原来的文件内容,在不要使用richtextbox这个控件的
    情况下要怎么办:Private Sub save_Click()
    On Error GoTo errhandler
    Dim temp As Integer
    If Left(MDIWrite.ActiveForm.Caption, 3) = "无标题" Then
      temp = Right(MDIWrite.ActiveForm.Caption, 1)
      commondialog1.Filter = "All files(*.*)|*.*|文本文件|*.txt"
      commondialog1.FilterIndex = 2
      commondialog1.ShowSave
      Open cdg2.FileName For Output As #2
      Print #2, MDIWrite.ActiveForm.Text1.Text
      Close #2
      MDIWrite.ActiveForm.Caption = commondialog1.FileName & "  文档:" & tempElse
      Open MDIWrite.ActiveForm.Caption For Output As #2  '(Bad file name or number)
      Print #2, MDIWrite.ActiveForm.Text1.Text
      Close #2
    End Iferrhandler:
    End Sub麻烦大家帮我看一下上面这段代码,在Else后面的这个语句中“MDIWrite.ActiveForm.Caption"
    能不能用其它语句来代替啊,而且我也不知道这样写是不是会有语法错误
      

  7.   

    怎么什不可能呢,windows的记事本不就是这样的吗
      

  8.   

    用下面的试一下:
    Private Sub Form_Unload(Cancel As Integer)
        If MsgBox("你确定在关我吗?", vbYesNo, "你确定吗?") = vbNo Then
            Cancel = True
        End If
    End Sub
      

  9.   

    怎么什不可能呢,windows的记事本不就是这样的吗
    看错了,我以为你要关掉整个程序时保存。
    我把楼上的改成你要的
    Private Sub Form_Unload(Cancel As Integer)
        If MsgBox("你确定在关我吗?", vbYesNo, "你确定吗?") = vbNo Then
            Cancel = True
        Else
            CommonDialog1.ShowSave
            If CommonDialog1.FileName = vbNullString Then
                Cancel = True
            End If
        End If
    End Sub