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

📄 frmeditor.vb

📁 一个简单的文本编辑器。
💻 VB
📖 第 1 页 / 共 4 页
字号:
        Me.StatusBarPanel3.Width = 10
        '
        'OpenFileDialog1
        '
        Me.OpenFileDialog1.Filter = "所有可打开的文档|*.rtf;*.txt|RTF文档(*.rtf)|*.rtf|TXT文档(*.txt)|*.txt|所有文档(*.*)|*.*"
        Me.OpenFileDialog1.ShowReadOnly = True
        Me.OpenFileDialog1.Title = "打开文档"
        '
        'SaveFileDialog1
        '
        Me.SaveFileDialog1.Filter = "RTF文档(*.rtf)|*.rtf|TXT文档(*.txt)|*.txt|任意扩展名|*.*"
        Me.SaveFileDialog1.RestoreDirectory = True
        Me.SaveFileDialog1.Title = "指定要保存的文件名"
        '
        'Timer1
        '
        Me.Timer1.Enabled = True
        '
        'RichTextBox1
        '
        Me.RichTextBox1.AutoWordSelection = True
        Me.RichTextBox1.Dock = System.Windows.Forms.DockStyle.Fill
        Me.RichTextBox1.HideSelection = False
        Me.RichTextBox1.Location = New System.Drawing.Point(0, 28)
        Me.RichTextBox1.Name = "RichTextBox1"
        Me.RichTextBox1.ShowSelectionMargin = True
        Me.RichTextBox1.Size = New System.Drawing.Size(632, 301)
        Me.RichTextBox1.TabIndex = 4
        Me.RichTextBox1.TabStop = False
        Me.RichTextBox1.Text = ""
        '
        'frmEditor
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(632, 353)
        Me.Controls.Add(Me.RichTextBox1)
        Me.Controls.Add(Me.StatusBar1)
        Me.Controls.Add(Me.ToolBar1)
        Me.Menu = Me.MainMenu1
        Me.Name = "frmEditor"
        Me.Text = "我的文本编辑器(Ver 4.0)"
        CType(Me.StatusBarPanel1, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.StatusBarPanel2, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.StatusBarPanel3, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)

    End Sub

#End Region
    Private Sub Init()
        '第一次打开时,创建一个空白文档
        Me.NewFile()

        Me.RichTextBox1.Font = Me.curFont

        Me.findwindow = New frmFind
        Me.findwindow.rt1 = Me.RichTextBox1

        LineNumWindow = New frmLineCount
        LineNumWindow.rt1 = Me.RichTextBox1

        Me.StatusBarPanel2.Text = "总字数:0"
        
    End Sub

    '当前打开的文件名
    Private curFileName As String = ""
    '当前打开文档的类型
    Private curFileType As DocumentType = DocumentType.RTFDocument

    '当前使用的字体
    Private curFont As Font = New Font("宋体", 10, FontStyle.Regular, GraphicsUnit.Point)

    '当前文件名
    Const NewDefalutFileName As String = "新文档"

    '打印设置
    Private storedPageSettings As PageSettings = Nothing

    '查找与替换窗体
    Private findwindow As frmFind = Nothing

    '插入行号窗体
    Private LineNumWindow As frmLineCount = Nothing


    Private Sub mnuFileExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFileExit.Click
        Application.Exit()
    End Sub

#Region "功能代码"
    '-----------------------------------------------------
    '文件菜单部分

    '设置窗体标题
    Private Sub showFormTitle()
        '如果成功,则设置主窗体标题栏
        Me.Text = "我的文本编辑器-[" & curFileName & "]"
    End Sub
    '打开已有文档
    Private Sub OpenFile()
        Dim filename As String = ""
        '获取用户选取的文件名
        If Me.OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            filename = Me.OpenFileDialog1.FileName
        End If

        If filename.Trim <> String.Empty Then
            Try
                If filename.EndsWith(".rtf") Then
                    '打开RichText格式的文档
                    Me.RichTextBox1.LoadFile(filename, RichTextBoxStreamType.RichText)
                    Me.curFileType = DocumentType.RTFDocument
                    Me.StatusBar1.Panels(0).Text = "RTF格式文档"
                Else
                    '打开纯文本本档
                    Me.RichTextBox1.LoadFile(filename, RichTextBoxStreamType.PlainText)
                    Me.curFileType = DocumentType.TXTDocument
                    Me.StatusBar1.Panels(0).Text = "纯文本格式文档"
                End If

                curFileName = filename
                '如果成功,则设置主窗体标题栏

                Me.showFormTitle()
                '设置改动标志
                Me.RichTextBox1.Modified = False
            Catch ex As Exception
                MsgBox("不能打开这种类型的文档。本编辑器只能打开RTF与纯文本格式的文档.系统返回的信息是:" + ex.Message, MsgBoxStyle.Information Or MsgBoxStyle.OKOnly, "提示信息")
            End Try
        End If

    End Sub

    '另存已有文档
    Private Sub SaveAs()
        Dim filename As String
        Dim tempext As String
        '设定缺省的文件名
        Me.SaveFileDialog1.FileName = System.IO.Path.GetFileNameWithoutExtension(curFileName)

        '获取用户选取的文件名
        If Me.SaveFileDialog1.ShowDialog() = DialogResult.OK Then
            filename = Me.SaveFileDialog1.FileName
            If filename.Trim <> String.Empty Then
                Try
                    Select Case Me.SaveFileDialog1.FilterIndex
                        Case 1
                            '保存RichText格式的文档
                            If Microsoft.VisualBasic.Right(filename, 4).ToLower <> ".rtf" Then
                                filename += ".rtf"
                            End If
                            Me.RichTextBox1.SaveFile(filename, RichTextBoxStreamType.RichText)
                            Me.curFileType = DocumentType.RTFDocument
                        Case 2
                            '保存纯文本格式的文档
                            If Microsoft.VisualBasic.Right(filename, 4).ToLower <> ".txt" Then
                                filename += ".txt"
                            End If
                            Me.RichTextBox1.SaveFile(filename, RichTextBoxStreamType.PlainText)
                            Me.curFileType = DocumentType.TXTDocument
                        Case Else
                            '缺省格式为纯文本
                            Me.RichTextBox1.SaveFile(filename, RichTextBoxStreamType.PlainText)
                    End Select
                    Me.curFileName = filename

                    '如果成功,则设置主窗体状态栏
                    Me.StatusBar1.Panels(0).Text = filename & "已保存!"
                    '设置改动标志
                    Me.RichTextBox1.Modified = False
                    '如果成功,则设置主窗体标题栏
                    Me.showFormTitle()
                Catch ex As Exception
                    MsgBox("不能保存文档。本编辑器只能按RTF与纯文本两种格式的保存文档.系统返回的信息是:" + ex.Message, MsgBoxStyle.Information Or MsgBoxStyle.OKOnly, "提示信息")
                End Try
            End If
        End If
    End Sub

    '创建新文档
    Private Sub NewFile()
        Me.RichTextBox1.Clear()
        curFileName = NewDefalutFileName
        Me.curFileType = DocumentType.RTFDocument
        Me.showFormTitle()
        Me.StatusBar1.Panels(0).Text = "RTF格式文档"
        Me.RichTextBox1.Modified = False
    End Sub

    '保存文档
    Private Sub SaveFile()
        '新建文档之后第一次存
        If Me.curFileName = NewDefalutFileName Then
            Me.SaveAs()
        Else
            '保存当前文档
            Try
                Select Case Me.curFileType
                    Case DocumentType.RTFDocument
                        Me.RichTextBox1.SaveFile(curFileName, RichTextBoxStreamType.RichText)
                    Case DocumentType.TXTDocument
                        Me.RichTextBox1.SaveFile(curFileName, RichTextBoxStreamType.PlainText)
                End Select
                '如果成功,则设置主窗体状态栏
                Me.StatusBar1.Panels(0).Text = curFileName & "已保存!"
                '设置改动标志
                Me.RichTextBox1.Modified = False
            Catch ex As Exception
                MsgBox("不能保存文档。本编辑器只能按RTF与纯文本两种格式的保存文档.系统返回的信息是:" + ex.Message, MsgBoxStyle.Information Or MsgBoxStyle.OKOnly, "提示信息")
            End Try
        End If
    End Sub

    '--------------------------------------------------------------------
    '编辑菜单部分
    Private Sub Copy()
        If Me.RichTextBox1.SelectedText = String.Empty Then
            Exit Sub
        Else
            Me.RichTextBox1.Copy()
        End If
    End Sub

    Private Sub Cut()
        If Me.RichTextBox1.SelectedText = String.Empty Then
            Exit Sub
        Else
            Me.RichTextBox1.Cut()
        End If
    End Sub

    Private Sub Paste()
        Me.RichTextBox1.Paste()
    End Sub

    '全选
    Private Sub SelectAll()
        Me.RichTextBox1.SelectAll()
    End Sub

    '清空
    Private Sub Clear()
        Me.RichTextBox1.Clear()
    End Sub

    '---------------------------------------------------------------------
    '格式菜单部份
    Private Sub SelectFont()
        Dim _font As Font
        Me.FontDialog1.ShowColor = True
        If Me.FontDialog1.ShowDialog = DialogResult.OK Then
            _font = Me.FontDialog1.Font
            Me.RichTextBox1.SelectionColor = Me.FontDialog1.Color
            Me.curFont = _font
            Me.RichTextBox1.SelectionFont = Me.curFont
        End If

    End Sub

    '粗体
    Private Sub SetBold()
        Dim _font As Font
        _font = Me.RichTextBox1.SelectionFont
        If _font.Bold = False Then
            _font = New Font(_font, _font.Style Or FontStyle.Bold)
        Else
            '除去粗体选项
            _font = New Font(_font, _font.Style - 1)
        End If

        Me.RichTextBox1.SelectionFont = _font
        
    End Sub

    '斜体
    Private Sub SetItalic()
        Dim _font As Font
        _font = Me.RichTextBox1.SelectionFont
        If _font.Italic = False Then
            _font = New Font(_font, _font.Style Or FontStyle.Italic)
        Else
            _font = New Font(_font, _font.Style - 2)
        End If
        Me.RichTextBox1.SelectionFont = _font
      
    End Sub

    '下划线
    Private Sub SetUnderline()
        Dim _font As Font
        _font = Me.RichTextBox1.SelectionFont
        If _font.Underline = False Then
            _font = New Font(_font, _font.Style Or FontStyle.Underline)
        Else
            _font = New Font(_font, _font.Style - 4)
        End If

        Me.RichTextBox1.SelectionFont = _font

    End Sub

    '设置颜色
    Private Sub SetColor()
        Dim clr As Color
        If Me.ColorDialog1.ShowDialog = DialogResult.OK Then
            clr = Me.ColorDialog1.Color
            Me.RichTextBox1.SelectionColor = clr
        End If

    End Sub

    '设置字体尺寸
    Private Sub SetFontSize(ByVal IsUp As Boolean)
        Dim size As Integer
        size = Me.RichTextBox1.SelectionFont.Size
        If IsUp Then
            size += 1
        Else
            size -= 1
        End If

        Dim _font As Font
        _font = New Font(Me.RichTextBox1.SelectionFont.Name, size, Me.RichTextBox1.SelectionFont.Style, GraphicsUnit.Point)
        Me.RichTextBox1.SelectionFont = _font
    End Sub

    '项目符号
    Private Sub SetBullet()
        Me.RichTextBox1.SelectionBullet = Not Me.RichTextBox1.SelectionBullet
    End Sub


    '缩进
    Private Sub SetIndent(ByVal isHanging As Boolean, ByVal IsUp As Boolean)
        If IsUp Then
            If isHanging Then
                Me.RichTextBox1.SelectionHangingIndent += 1
            Else
                Me.RichTextBox1.SelectionIndent += 1
            End If

        Else
            If isHanging Then
                Me.RichTextBox1.SelectionHangingIndent -= 1
            Else
                Me.RichTextBox1.SelectionIndent -= 1
            End If

        End If
    End Sub


    '设定上下标
    Private Sub SetCharOffSet(ByVal IsUp As Boolean)
        If IsUp Then
            Me.RichTextBox1.SelectionCharOffset = 5
        Else
            Me.RichTextBox1.SelectionCharOffset = -5

⌨️ 快捷键说明

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