📄 form1.vb
字号:
'
Me.ToolBarButton3.ImageIndex = 2
Me.ToolBarButton3.ToolTipText = "保存"
'
'ToolBarButton4
'
Me.ToolBarButton4.Style = System.Windows.Forms.ToolBarButtonStyle.Separator
'
'ToolBarButton5
'
Me.ToolBarButton5.ImageIndex = 3
Me.ToolBarButton5.ToolTipText = "剪切"
'
'ToolBarButton6
'
Me.ToolBarButton6.ImageIndex = 4
Me.ToolBarButton6.ToolTipText = "复制"
'
'ToolBarButton7
'
Me.ToolBarButton7.ImageIndex = 5
Me.ToolBarButton7.ToolTipText = "粘贴"
'
'ToolBarButton8
'
Me.ToolBarButton8.Style = System.Windows.Forms.ToolBarButtonStyle.Separator
'
'ToolBarButton9
'
Me.ToolBarButton9.ImageIndex = 6
Me.ToolBarButton9.ToolTipText = "查找"
'
'ToolBarButton10
'
Me.ToolBarButton10.ImageIndex = 7
Me.ToolBarButton10.ToolTipText = "关于"
'
'RTextBox
'
Me.RTextBox.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.RTextBox.Location = New System.Drawing.Point(0, 40)
Me.RTextBox.Name = "RTextBox"
Me.RTextBox.Size = New System.Drawing.Size(792, 412)
Me.RTextBox.TabIndex = 1
Me.RTextBox.Text = ""
'
'StatusBar1
'
Me.StatusBar1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.StatusBar1.Dock = System.Windows.Forms.DockStyle.None
Me.StatusBar1.Location = New System.Drawing.Point(0, 424)
Me.StatusBar1.Name = "StatusBar1"
Me.StatusBar1.Panels.AddRange(New System.Windows.Forms.StatusBarPanel() {Me.StatusBarPanel1, Me.StatusBarPanel2})
Me.StatusBar1.ShowPanels = True
Me.StatusBar1.Size = New System.Drawing.Size(792, 24)
Me.StatusBar1.TabIndex = 2
'
'StatusBarPanel1
'
Me.StatusBarPanel1.AutoSize = System.Windows.Forms.StatusBarPanelAutoSize.Spring
Me.StatusBarPanel1.Text = "就绪"
Me.StatusBarPanel1.Width = 675
'
'StatusBarPanel2
'
Me.StatusBarPanel2.AutoSize = System.Windows.Forms.StatusBarPanelAutoSize.Contents
Me.StatusBarPanel2.Text = "在这里显示时间"
Me.StatusBarPanel2.Width = 101
'
'OFD
'
Me.OFD.Filter = "rtf 文件|*.rtf|所有文件|*.*"
'
'SFD
'
Me.SFD.FileName = "无标题"
Me.SFD.Filter = "rtf文件(*.rtf)|*.rtf"
'
'Timer1
'
Me.Timer1.Enabled = True
Me.Timer1.Interval = 1000
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(792, 457)
Me.Controls.Add(Me.StatusBar1)
Me.Controls.Add(Me.RTextBox)
Me.Controls.Add(Me.ToolBar1)
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Menu = Me.MainMenu1
Me.Name = "Form1"
Me.Text = "多功能记事本"
CType(Me.StatusBarPanel1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.StatusBarPanel2, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub MenuNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuNew.Click
If bool = True Or Trim(RTextBox.Text) <> Nothing Then
Else
Exit Sub
End If
Dim result As Integer
result = MsgBox("文档尚未保存,是否继续?", MsgBoxStyle.YesNoCancel)
Select Case result
Case 2 '按下“取消”安钮'
Exit Sub
Case 6 '按下“是”安钮'
If bool = True Then
RTextBox.SaveFile(OFD.FileName)
ElseIf SFD.ShowDialog = DialogResult.OK Then
RTextBox.SaveFile(SFD.FileName)
Else
Exit Sub
End If
End Select
bool = False
RTextBox.Clear()
End Sub
Private Sub MenuOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuOpen.Click
Try
If bool = True Or Trim(RTextBox.Text) <> Nothing Then
Dim result As Integer
result = MsgBox("文档尚未保存,是否保存?", MsgBoxStyle.YesNoCancel)
Select Case result
Case 2 '按下“cancel”按钮'
Exit Sub
Case 6 '按下"yes"按钮'
If bool = True Then
RTextBox.SaveFile(OFD.FileName)
ElseIf SFD.ShowDialog = DialogResult.OK Then
RTextBox.SaveFile(SFD.FileName)
Else
Exit Sub
End If
End Select
End If
OFD.RestoreDirectory = True
If OFD.ShowDialog() = DialogResult.OK And OFD.FileName <> "" Then
RTextBox.LoadFile(OFD.FileName)
bool = True
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub MenuSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuSave.Click
Try
If bool = True And RTextBox.Modified = True Then
RTextBox.SaveFile(OFD.FileName)
Exit Sub
End If
If bool = False And Trim(RTextBox.Text) <> Nothing Then
If SFD.ShowDialog = DialogResult.OK Then
RTextBox.SaveFile(SFD.FileName)
bool = True
OFD.FileName = SFD.FileName
End If
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub MenuSaveAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuSaveAs.Click
If SFD.ShowDialog = DialogResult.OK Then
RTextBox.SaveFile(SFD.FileName)
End If
End Sub
Private Sub MenuPrintSetup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuPrintSetup.Click
PSD.Document = pdoc
If PSD.ShowDialog() = DialogResult.OK Then
pdoc.DefaultPageSettings = PSD.PageSettings
End If
End Sub
Private Sub printpage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
Static intcurrentchar As Integer
Dim font As New Font("宋体", 30)
Dim intprintareaheight, intprintareawidth, marginleft, margintop As Integer
With pdoc.DefaultPageSettings
intprintareaheight = .PaperSize.Height - .Margins.Top - .Margins.Bottom
intprintareawidth = .PaperSize.Height - .Margins.Left - .Margins.Bottom
marginleft = .Margins.Left
margintop = .Margins.Top
End With
If pdoc.DefaultPageSettings.Landscape Then
Dim intTemp As Integer
intTemp = intprintareaheight
intprintareaheight = intprintareawidth
intprintareawidth = intTemp
End If
Dim rectprintingarea As New RectangleF(marginleft, margintop, intprintareawidth, intprintareaheight)
Dim fmt As New StringFormat(StringFormatFlags.LineLimit)
Dim intlinesfilled, intcharsfitted As Integer
e.graphics.measurestring(Mid(RTextBox.Text, intcurrentchar + 1), font, New SizeF(intprintareawidth, intprintareaheight), fmt, intcharsfitted, intlinesfilled)
e.graphics.drawstring(Mid(RTextBox.Text, intcurrentchar + 1), font, Brushes.Black, rectprintingarea, fmt)
intcurrentchar += intcharsfitted
If intcurrentchar < RTextBox.Text.Length Then
e.hasmorepages = True
Else
e.hasmorepages = False
intcurrentchar = 0
End If
End Sub
Private Sub MenuPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuPrint.Click
AddHandler pdoc.PrintPage, AddressOf Me.printpage
PD.Document = pdoc
If PD.ShowDialog = DialogResult.OK Then
pdoc.Print()
End If
End Sub
Private Sub MenuExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuExit.Click
Application.Exit()
End Sub
Private Sub MenuEdit_Select(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuEdit.Select
If Clipboard.GetDataObject().GetFormats(False).Length > 0 Then
MenuPaste.Enabled = True
Else
MenuPaste.Enabled = False
End If
If RTextBox.SelectedText = Nothing Then
MenuCut.Enabled = False
MenuCopy.Enabled = False
Else
MenuCut.Enabled = True
MenuCopy.Enabled = True
End If
If RTextBox.UndoActionName = "" Then
MenuCancel.Enabled = False
Else
MenuCancel.Enabled = True
End If
End Sub
Private Sub MenuCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuCancel.Click
RTextBox.Undo()
End Sub
Private Sub MenuCut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuCut.Click
RTextBox.Cut()
End Sub
Private Sub MenuCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuCopy.Click
RTextBox.Copy()
End Sub
Private Sub MenuPaste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuPaste.Click
RTextBox.Paste()
End Sub
Private Sub MenuFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuFind.Click
Dim ob_findform As New FindForm
ob_findform.Show()
End Sub
Private Sub MenuReplace_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuReplace.Click
Dim ob_replace As New ReplaceForm
ob_replace.Show()
End Sub
Private Sub MenuSelectAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuSelectAll.Click
RTextBox.SelectAll()
End Sub
Private Sub MenuDate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuDate.Click
RTextBox.AppendText(Now())
End Sub
Private Sub MenuAuto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuAuto.Click
If MenuAuto.Checked = False Then
MenuAuto.Checked = True
RTextBox.WordWrap = True
Else
MenuAuto.Checked = False
RTextBox.WordWrap = False
End If
End Sub
Private Sub MenuFont_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuFont.Click
FD.ShowColor = True
If FD.ShowDialog = DialogResult.OK Then
RTextBox.SelectionColor = FD.Color
RTextBox.SelectionFont = FD.Font
End If
End Sub
Private Sub MenuStateBar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuStateBar.Click
If MenuStateBar.Checked = True Then
MenuStateBar.Checked = True
StatusBar1.Visible = False
RTextBox.Height += StatusBar1.Height
Else
MenuStateBar.Checked = True
StatusBar1.Visible = True
RTextBox.Height -= StatusBar1.Height
End If
End Sub
Private Sub MenuToolBar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuToolBar.Click
Dim point As Point
If MenuToolBar.Checked = True Then
point = New Point(0, 0)
MenuToolBar.Checked = False
ToolBar1.Visible = False
RTextBox.Location = point
RTextBox.Height += ToolBar1.Height
Else
point = New Point(0, 25)
MenuToolBar.Checked = True
ToolBar1.Visible = True
RTextBox.Location = point
RTextBox.Height -= ToolBar1.Height
End If
End Sub
Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick
Select Case ToolBar1.Buttons.IndexOf(e.Button)
Case 0
Me.MenuNew_Click(sender, e)
Case 1
Me.MenuOpen_Click(sender, e)
Case 2
Me.MenuSave_Click(sender, e)
Case 4
Me.MenuCut_Click(sender, e)
Case 5
Me.MenuCopy_Click(sender, e)
Case 6
Me.MenuPaste_Click(sender, e)
Case 8
Me.MenuFind_Click(sender, e)
Case 9
Me.MenuAuto_Click(sender, e)
End Select
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
StatusBarPanel2.Text = Now()
End Sub
Private Sub MenuAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuAbout.Click
Dim ob_aboutform As New AboutForm
ob_aboutform.Show()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub StatusBar1_PanelClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.StatusBarPanelClickEventArgs) Handles StatusBar1.PanelClick
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -