editplus.frm

来自「VB6程序设计参考手册 -独立源码 VB6程序设计参考手册 -独立源码」· FRM 代码 · 共 505 行 · 第 1/2 页

FRM
505
字号
         Index           =   4
         Shortcut        =   ^F
      End
      Begin VB.Menu mnuEditItem 
         Caption         =   "替换"
         Index           =   5
         Shortcut        =   ^E
      End
      Begin VB.Menu mnuEditItem 
         Caption         =   "-"
         Index           =   6
      End
      Begin VB.Menu mnuEditItem 
         Caption         =   "全选"
         Index           =   7
         Shortcut        =   ^A
      End
   End
   Begin VB.Menu mnuSettings 
      Caption         =   "设置[&S]"
      Begin VB.Menu mnuSettingsItem 
         Caption         =   "字体"
         Index           =   0
      End
      Begin VB.Menu mnuSettingsItem 
         Caption         =   "颜色"
         Index           =   1
      End
   End
   Begin VB.Menu mnuHelp 
      Caption         =   "帮助[&H]"
      Begin VB.Menu mnuHelpItem 
         Caption         =   "显示帮助"
         Index           =   0
      End
      Begin VB.Menu mnuHelpItem 
         Caption         =   "-"
         Index           =   1
      End
      Begin VB.Menu mnuHelpItem 
         Caption         =   "关于"
         Index           =   2
      End
   End
End
Attribute VB_Name = "frmEditor"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

'  初始化
Private Sub Form_Load()
    ' 设置当前路径
    ChDir App.Path
    ChDrive App.Path
    
    ' 设置文本框的位置
    txtEdit.Move 0, 0
           
    ' 初始Filename变量
    FileName = "Untitled"
    FileType = 1

    ' 设置窗体位置
    Top = Screen.Height / 2 - Height / 2
    Left = Screen.Width / 2 - Width / 2
    
    Toolbar1.RestoreToolbar "MyTextEdit", "User1", "Toolbar"
    UpdateToolBar
End Sub

'  改变窗口大小
Private Sub Form_Resize()
    ' 窗体大小改变时,相应的改变文本框大小
    txtEdit.Width = ScaleWidth
    txtEdit.Height = ScaleHeight
End Sub

'  “文件”菜单
Private Sub mnuFileItem_Click(Index As Integer)
      
    On Error GoTo errhandler
    
    ' 设置过滤器
    CMDialog1.Filter = "All Files (*.*)|*.*|Text Files (*.txt)|*.txt|RTF Files (*.rtf)|*.rtf"
    ' 设置缺省过滤器
    CMDialog1.FilterIndex = 2
    Select Case Index
        ' 根据菜单的索引选择相应的操作
        Case 0
            ' 如果index = 0, 新建文本文件
            txtEdit.Text = ""               '清空文本框内容
            FileName = "Untitled"
            frmEditor.Caption = "记事本: " & FileName  '设置记事本标题为 "记事本: Untitled"
        Case 1
            ' 如果index = 1, 打开文本文件
            ' 显示"打开"对话框
            CMDialog1.ShowOpen
            FileName = CMDialog1.FileName
            OpenFile (FileName)
        Case 2
            ' 如果index = 2, 保存文件
            If FileName = "Untitled" Then
                '如果文件尚未命名,则显示保存对话框
                CMDialog1.ShowSave
                FileName = CMDialog1.FileName
                WriteFile (FileName)
            Else
                '否则直接保存
                SaveFile (FileName)
            End If
        Case 3
            ' 如果index = 3,另存文件
            ' 显示另存对话框
            CMDialog1.ShowSave
            FileName = CMDialog1.FileName
            WriteFile (FileName)
        Case 4
            ' 无操作,分隔
        Case 5
            End
    End Select
errhandler:
        ' 错误处理
        Exit Sub
End Sub

'  “文件”菜单中的历史文件列表菜单
Private Sub mnuFileArray_Click(Index As Integer)
    
    ' 打开选择的文件
    If Index >= 0 Then
        OpenFile (mnuFileArray(Index).Caption)
    End If

End Sub


'  “编辑”菜单
Private Sub mnuEditItem_Click(Index As Integer)
    
    Select Case Index
        Case 0
            ' 如果 Index = 0, 剪切选中文本
            Clipboard.Clear
            If FileType = 0 Then            ' 剪切选择的文本到Clipboard中.
                Clipboard.SetText txtEdit.SelRTF
                txtEdit.SelRTF = ""         ' 清除选中的文本
            Else
                Clipboard.SetText txtEdit.SelText
                txtEdit.SelText = ""        ' 清除选中的文本
            End If
        Case 1
            ' 如果 Index = 1, 复制选中文本
            Clipboard.Clear
            If FileType = 0 Then     ' 复制选择的文本到Clipboard中
                Clipboard.SetText txtEdit.SelRTF
            Else
                Clipboard.SetText txtEdit.SelText
            End If
        Case 2
            ' 如果 Index = 2, 粘贴文本
            txtEdit.SelText = Clipboard.GetText()   ' 粘贴文本
        Case 3
            ' 菜单分隔符
        Case 4, 5
            ' 如果 Index = 4 5, 查找 替换
            frmFind.Show 0, frmEditor
        Case 6
            ' 菜单分隔符
        Case 7
            ' 如果 Index = 4, 全选
            txtEdit.SelStart = 0
            txtEdit.SelLength = Len(txtEdit.Text)
    End Select
    
End Sub

'  “设置”菜单
Private Sub mnuSettingsItem_Click(Index As Integer)
    On Error GoTo errhandler
    Select Case Index
    Case 0
    '  设置字体
        CMDialog1.Flags = cdlCFBoth
        CMDialog1.ShowFont   '显示“字体”对话框
        With txtEdit
            .SelFontName = CMDialog1.FontName
            .SelBold = CMDialog1.FontBold
            .SelItalic = CMDialog1.FontItalic
            .SelFontSize = CMDialog1.FontSize
            .SelUnderline = CMDialog1.FontUnderline
            .SelStrikeThru = CMDialog1.FontStrikethru
        End With
    Case 1
    '  设置字体颜色
        CMDialog1.ShowColor '显示“颜色”对话框
        txtEdit.SelColor = CMDialog1.Color
    End Select
errhandler:
        ' 错误处理
        Exit Sub
End Sub

'  工具栏命令
'  因为工具栏命令按钮有相应的命令菜单
'  所以直接调用命令菜单的事件处理程序即可
Private Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button)
    Select Case Button.Key
    Case "new"
        Call mnuFileItem_Click(0)
    Case "open"
        Call mnuFileItem_Click(1)
    Case "save"
        Call mnuFileItem_Click(2)
    Case "cut"
        Call mnuEditItem_Click(0)
    Case "copy"
        Call mnuEditItem_Click(1)
    Case "paste"
        Call mnuEditItem_Click(2)
    Case "find"
        Call mnuEditItem_Click(4)
    Case "replace"
        Call mnuEditItem_Click(5)
    End Select
End Sub

'  保存用户定制工具栏
Private Sub Toolbar1_Change()
    Toolbar1.SaveToolbar "MyTextEdit", "User1", "Toolbar"
End Sub

'  更新工具栏和菜单的状态
Private Sub txtEdit_selChange()
    UpdateToolBar
End Sub

'  更新工具栏和菜单的状态
Private Sub UpdateToolBar()
  ' 如果没有选中文本则使剪切和复制不可用
    mnuEditItem(0).Enabled = (txtEdit.SelLength > 0)
    mnuEditItem(1).Enabled = (txtEdit.SelLength > 0)
    If Toolbar1.Buttons("cut").Visible = True Then
       Toolbar1.Buttons("cut").Enabled = mnuEditItem(0).Enabled
    End If
    If Toolbar1.Buttons("copy").Visible = True Then
       Toolbar1.Buttons("copy").Enabled = mnuEditItem(1).Enabled
    End If
End Sub

⌨️ 快捷键说明

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