📄 frmeditor.vb
字号:
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 + -