⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 v6bj08-07.frm

📁 对菜单的打开文件保存记录进行改进
💻 FRM
字号:
VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   3195
   ClientLeft      =   4530
   ClientTop       =   4695
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   ScaleHeight     =   3195
   ScaleWidth      =   4680
   Begin MSComDlg.CommonDialog CommonDialog1 
      Left            =   4200
      Top             =   420
      _ExtentX        =   847
      _ExtentY        =   847
      _Version        =   393216
   End
   Begin VB.TextBox Text1 
      Height          =   3135
      Left            =   60
      MultiLine       =   -1  'True
      ScrollBars      =   3  'Both
      TabIndex        =   0
      Top             =   60
      Width           =   4515
   End
   Begin VB.Menu FileMenu 
      Caption         =   "文件"
      Begin VB.Menu FileNew 
         Caption         =   "新建"
         Shortcut        =   ^N
      End
      Begin VB.Menu FileOpen 
         Caption         =   "打开"
         Shortcut        =   ^O
      End
      Begin VB.Menu Bar1 
         Caption         =   "-"
      End
      Begin VB.Menu FileSave 
         Caption         =   "保存"
         Shortcut        =   ^S
      End
      Begin VB.Menu FileSaveAs 
         Caption         =   "另存为"
      End
      Begin VB.Menu bar2 
         Caption         =   "-"
      End
      Begin VB.Menu RunMenu 
         Caption         =   ""
         Index           =   0
         Visible         =   0   'False
      End
      Begin VB.Menu bar3 
         Caption         =   "-"
         Visible         =   0   'False
      End
      Begin VB.Menu FileExit 
         Caption         =   "退出"
      End
   End
   Begin VB.Menu EditMenu 
      Caption         =   "编辑"
      Begin VB.Menu EditCopy 
         Caption         =   "复制"
         Shortcut        =   ^C
      End
      Begin VB.Menu EditCut 
         Caption         =   "剪切"
         Shortcut        =   ^X
      End
      Begin VB.Menu EditPaste 
         Caption         =   "粘贴"
         Shortcut        =   ^V
      End
   End
   Begin VB.Menu MenuDel 
      Caption         =   "删除菜单项"
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim iMenucount%, i%, j%, k%, Flag As Boolean, Flag1 As Boolean
Private Sub EditCopy_Click()
    st = Text1.SelText          '将选中的内容存放到st变量中
    EditCopy.Enabled = False    '进行复制后,剪切和复制按钮无效
    EditCut.Enabled = False
    EditPaste.Enabled = True    '粘贴按钮有效
End Sub

Private Sub EditCut_Click()
    st = Text1.SelText          '将选中的内容存放到st变量中
    Text1.SelText = ""          '将选中的内容清除,实现了剪切
    EditCopy.Enabled = False
    EditCut.Enabled = False
    EditPaste.Enabled = True
End Sub

Private Sub EditPaste_Click()
    Text1.Text = Left(Text1, Text1.SelStart) + st + Mid(Text1, Text1.SelStart + 1)
End Sub

Private Sub FileExit_Click()
    End
End Sub

Private Sub FileOpen_Click()
    On Error GoTo nofile                            ' 设置错误陷阱
    CommonDialog1.InitDir = App.Path              ' 设置属性(可以在设计中完成)
    CommonDialog1.Filter = "文本文件 | *.Txt"
    CommonDialog1.CancelError = True
    CommonDialog1.ShowOpen                          ' 或用Action = 1
    Text1.Text = ""
    Open CommonDialog1.FileName For Input As #1     ' 打开文件进行读操作
    Do While Not EOF(1)
        Line Input #1, inputdata                    ' 读一行数据
        Text1.Text = Text1.Text + inputdata + Chr(13) + Chr(10)
    Loop
    Close #1                                        ' 关闭文件
    
    
    
    iMenucount = iMenucount + 1
    Flag = False
    If iMenucount < 5 Then
    bar3.Visible = True
    Load RunMenu(iMenucount)                        ' 装入新菜单项,修改后
      For i = 1 To iMenucount - 1                   '若新打开文件名与已打开过的文件名重名
        If RunMenu(i).Caption = CommonDialog1.FileName Then
          Flag = True
          If iMenucount > 2 Then
            For k = i To 2 Step -1
              RunMenu(k).Caption = RunMenu(k - 1).Caption
              RunMenu(k).Visible = True
            Next k
            RunMenu(1).Caption = CommonDialog1.FileName
            RunMenu(1).Visible = True
          ElseIf iMenucount = 2 Then
            Unload RunMenu(iMenucount)
            iMenucount = iMenucount - 1
            Load RunMenu(iMenucount)
          End If
        End If
      Next i
      If Flag = False Then                           '若新打开文件名没有与已打开过的文件名重名
        If iMenucount > 2 Then
          For j = iMenucount To 2 Step -1
            RunMenu(j).Caption = RunMenu(j - 1).Caption
            RunMenu(j).Visible = True
          Next j
            RunMenu(1).Caption = CommonDialog1.FileName
        ElseIf iMenucount = 2 Then
            RunMenu(2).Caption = RunMenu(1).Caption
            RunMenu(1).Caption = CommonDialog1.FileName
            RunMenu(2).Visible = True
            RunMenu(1).Visible = True
        ElseIf iMenucount = 1 Then
            RunMenu(1).Caption = CommonDialog1.FileName
            RunMenu(1).Visible = True
        End If
      End If
      
    Else                                               '若打开总文件数超过4个
      Flag1 = False
      For i = 1 To 4                                      '若新打开文件名与已打开过的文件名重名
        If RunMenu(i).Caption = CommonDialog1.FileName Then
          Flag1 = True
          If i > 2 Then
            For j = i To 2 Step -1
              RunMenu(j).Caption = RunMenu(j - 1).Caption
            Next j
            RunMenu(1).Caption = CommonDialog1.FileName
          ElseIf i = 2 Then
            RunMenu(2).Caption = RunMenu(1).Caption
            RunMenu(1).Caption = CommonDialog1.FileName
          ElseIf i = 1 Then
          Exit For
          End If
        End If
      Next i
      If Flag1 = False Then                                      '若新打开文件名没有与已打开过的文件名重名
        For p = 3 To 1 Step -1
          RunMenu(p + 1).Caption = RunMenu(p).Caption
          RunMenu(p + 1).Visible = True
        Next p
        RunMenu(1).Caption = CommonDialog1.FileName
        RunMenu(1).Visible = True
      End If
    End If
    
    
    
    Exit Sub
nofile:                                             ' 错误处理
    If Err.Number = 32755 Then Exit Sub             ' 单击"取消"按钮
End Sub



Private Sub MenuDel_Click()
    Dim n As Integer
        If iMenucount > 4 Then              ' 如果文件数大于4
        n = 4
    Else
        n = iMenucount
    End If
    For i = 1 To n
    Unload RunMenu(i)                       ' 删除菜单项
    Next i
    iMenucount = 0                          ' 重置文件打开数
    bar3.Visible = False                    ' 隐含分隔线
End Sub

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then PopupMenu EditMenu, vbPopupMenuCenterAlign
End Sub

Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Text1.SelText <> "" Then
      EditCut.Enabled = True     ' 当拖动鼠标选中要操作的文本后,剪切、复制按钮有效
      EditCopy.Enabled = True
      EditPaste.Enabled = False
    Else
      EditCut.Enabled = False    ' 当拖动鼠标未选中文本,剪切、复制按钮无效
      EditCopy.Enabled = False
      EditPaste.Enabled = True
    End If
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -