Public Class Form2
Private Sub Form2_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
'创建上下文菜单
Dim contextMenuStrip1 As New ContextMenuStrip()
'添加菜单项
Dim undoMenuItem As New ToolStripMenuItem("撤销")
Dim deleteMenuItem As New ToolStripMenuItem("删除")
Dim selectAllMenuItem As New ToolStripMenuItem("全选")
Dim copyMenuItem As New ToolStripMenuItem("复制")
Dim pasteMenuItem As New ToolStripMenuItem("粘贴")
Dim cutMenuItem As New ToolStripMenuItem("剪切")
contextMenuStrip1.Items.Add(undoMenuItem)
contextMenuStrip1.Items.Add(deleteMenuItem)
contextMenuStrip1.Items.Add(selectAllMenuItem)
contextMenuStrip1.Items.Add(copyMenuItem)
contextMenuStrip1.Items.Add(pasteMenuItem)
contextMenuStrip1.Items.Add(cutMenuItem)
'将上下文菜单与文本框关联
RichTextBox1.ContextMenuStrip = contextMenuStrip1
'为菜单项添加点击事件处理程序
AddHandler undoMenuItem.Click, AddressOf UndoMenuItem_Click
AddHandler deleteMenuItem.Click, AddressOf DeleteMenuItem_Click
AddHandler selectAllMenuItem.Click, AddressOf SelectAllMenuItem_Click
AddHandler copyMenuItem.Click, AddressOf CopyMenuItem_Click
AddHandler pasteMenuItem.Click, AddressOf PasteMenuItem_Click
AddHandler cutMenuItem.Click, AddressOf CutMenuItem_Click
End Sub
Private Sub UndoMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs)
RichTextBox1.Undo()
End Sub
Private Sub DeleteMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs)
If RichTextBox1.SelectionLength > 0 Then
RichTextBox1.Text = RichTextBox1.Text.Remove(RichTextBox1.SelectionStart, RichTextBox1.SelectionLength)
End If
End Sub
Private Sub SelectAllMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs)
RichTextBox1.SelectAll()
End Sub
Private Sub CopyMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs)
If RichTextBox1.SelectedText <> "" Then
Clipboard.SetText(RichTextBox1.SelectedText)
End If
End Sub
Private Sub PasteMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs)
RichTextBox1.Text = RichTextBox1.Text.Insert(RichTextBox1.SelectionStart, Clipboard.GetText())
End Sub
Private Sub CutMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs)
If RichTextBox1.SelectedText <> "" Then
Clipboard.SetText(RichTextBox1.SelectedText)
RichTextBox1.Text = RichTextBox1.Text.Remove(RichTextBox1.SelectionStart, RichTextBox1.SelectedText.Length)
End If
End Sub
Private Sub NewToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles NewToolStripMenuItem.Click
RichTextBox1.Clear()
End Sub
Private Sub OpenToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles OpenToolStripMenuItem.Click
Dim openFileDialog1 As New OpenFileDialog()
openFileDialog1.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*"
openFileDialog1.FilterIndex = 1
openFileDialog1.RestoreDirectory = True
If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
Try
Dim sr As New System.IO.StreamReader(openFileDialog1.FileName)
RichTextBox1.Text = sr.ReadToEnd()
sr.Close()
Catch ex As Exception
MessageBox.Show("Error: Could not read file from disk. Original error: " & ex.Message)
End Try
End If
End Sub
Private Sub SaveToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles SaveToolStripMenuItem.Click
If Not String.IsNullOrEmpty(RichTextBox1.Text) Then
If Not String.IsNullOrEmpty(SaveFileDialog1.FileName) Then
My.Computer.FileSystem.WriteAllText(SaveFileDialog1.FileName, RichTextBox1.Text, False)
Else
SaveAsToolStripMenuItem.PerformClick()
End If
End If
End Sub
Private Sub SaveAsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles SaveAsToolStripMenuItem.Click
Dim saveFileDialog1 As New SaveFileDialog()
saveFileDialog1.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*"
saveFileDialog1.FilterIndex = 1
saveFileDialog1.RestoreDirectory = True
If saveFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
My.Computer.FileSystem.WriteAllText(saveFileDialog1.FileName, RichTextBox1.Text, False)
saveFileDialog1.FileName = saveFileDialog1.FileName
End If
End Sub
Private Sub ExitToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ExitToolStripMenuItem.Click
Me.Close()
End Sub
Private Sub UndoToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles UndoToolStripMenuItem.Click
RichTextBox1.Undo()
End Sub
Private Sub CutToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CutToolStripMenuItem.Click
RichTextBox1.Cut()
End Sub
Private Sub CopyToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CopyToolStripMenuItem.Click
RichTextBox1.Copy()
End Sub
Private Sub PasteToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles PasteToolStripMenuItem.Click
RichTextBox1.Paste()
End Sub
Private Sub DeleteToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles DeleteToolStripMenuItem.Click
RichTextBox1.SelectedText = ""
End Sub
Private Sub FontToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles FontToolStripMenuItem.Click
Dim fontDialog1 As New FontDialog()
If fontDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
RichTextBox1.Font = fontDialog1.Font
End If
End Sub
Private Sub AboutNotepadToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles AboutNotepadToolStripMenuItem.Click
MessageBox.Show("Notepad" & vbCrLf & "Version 1.0" & vbCrLf & "©2022 Microsoft Corporation. All rights reserved.")
End Sub
Private Sub SelectAllToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SelectAllToolStripMenuItem.Click
RichTextBox1.SelectAll()
End Sub
Private Sub 顺序排列组合ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 顺序排列组合ToolStripMenuItem.Click
Dim i, j As Integer
Dim a() As String = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}
For i = 0 To 9
For j = 0 To 9
RichTextBox1.Text = RichTextBox1.Text & a(i) & a(j) & vbCrLf
Next
Next
End Sub
Private Sub 随机排列组合ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 随机排列组合ToolStripMenuItem.Click
Dim i, j As Integer
Dim a() As String = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}
For i = 0 To 9
For j = 0 To 9
RichTextBox1.Text = RichTextBox1.Text & a(CInt((Rnd() * i))) & a((CInt(Rnd() * j))) & vbCrLf
Next
Next
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
RichTextBox1.Text = ""
End Sub
End Class