📄 frmnotepad.vb
字号:
Private Sub MenuItem13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem13.Click
Dim fnt As New Font(TextBox1.Font.FontFamily, CType(MyFontSize.Medium, Integer))
TextBox1.Font = fnt
MenuItem12.Checked = False
MenuItem13.Checked = True
MenuItem14.Checked = False
End Sub
Private Sub MenuItem14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem14.Click
Dim fnt As New Font(TextBox1.Font.FontFamily, CType(MyFontSize.Small, Integer))
TextBox1.Font = fnt
MenuItem12.Checked = False
MenuItem13.Checked = False
MenuItem14.Checked = True
End Sub
'See CommonDialogs.sln for details
Private FileName1 As String
Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
Dim ts1 As StreamReader
Try
With OpenFileDialog1
'检查所选择的档案是否存在
.CheckFileExists = True
'检查所选择的档案路径是否存在
.CheckPathExists = True
'预设的档案扩展名 .txt 檔
.DefaultExt = "txt"
'如果对话框传回快捷方式所参照的档案位置,则为 true ;否则为 false 。默认值是 true 。
.DereferenceLinks = True
'可选之档案类型(档案的扩展名), 以|分隔
.Filter = "Text files (*.txt)|*.txt|All files|*.*"
'可多选 Multiselect = True
.Multiselect = False
'如果对话框在使用者搜寻档案过程中变更目录时,将目前的目录还原成它原来的值,属性值为 true ;否则为 false 。默认值是 false 。
.RestoreDirectory = True
'显示 Help 按钮
.ShowHelp = True
'显示 Read-Only checkbox
.ShowReadOnly = False
'显示 Read-Only checkbox 时, 预设为打勾
'.ReadOnlyChecked = False
.Title = "选择待开启的文字文件"
'仅接受有效的 Win32 檔名
.ValidateNames = True
'读取文字文件到 TextBox1
If .ShowDialog() = DialogResult.OK Then
FileName1 = .FileName
ts1 = New StreamReader(.OpenFile)
TextBox1.Text = ts1.ReadToEnd()
End If
End With
Catch e1 As Exception
MessageBox.Show(e1.Message, Me.Text)
Finally
If Not (ts1 Is Nothing) Then
ts1.Close()
End If
End Try
End Sub
Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
Dim sw1 As StreamWriter
Try
With SaveFileDialog1
'若为 true 则在使用者遗漏扩展名时会自动加入档案的扩展名。默认值是 true 。
.AddExtension = True
'检查所选择的档案路径是否存在
.CheckPathExists = True
.CreatePrompt = False
.OverwritePrompt = True
'仅接受有效的 Win32 檔名
.ValidateNames = True
'显示 Help 按钮
.ShowHelp = True
'预设的档案扩展名 .txt 檔
.DefaultExt = "txt"
'檔名
.FileName = FileName1
'可选之档案类型(档案的扩展名), 以|分隔, FilterIndex 由1计算起
.Filter = "Text files (*.txt)|*.txt|All files|*.*"
.FilterIndex = 1
'储存档案
If .ShowDialog() = DialogResult.OK Then
FileName1 = .FileName
sw1 = New StreamWriter(FileName1)
sw1.Write(TextBox1.Text)
End If
End With
Catch e1 As Exception
MessageBox.Show(e1.Message, Me.Text)
Finally
If Not (sw1 Is Nothing) Then
sw1.Close()
End If
End Try
End Sub
'See Prints/Prints.sln for details
Private WithEvents pdoc1 As New PrintDocument()
Private Sub MenuItem15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem15.Click
'打印
'若由工具箱拖拉 PrintDialog1 则不需要下行
'Dim PrintDialog1 As New PrintDialog()
PrintDialog1.Document = pdoc1
If PrintDialog1.ShowDialog = DialogResult.OK Then
Try
pdoc1.Print()
Catch e1 As Exception
MessageBox.Show(e1.ToString, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End If
End Sub
'打印每一页时将触发 PrintPage 事件(event), 以可使用 BeginPrint, EndPrint 事件
Private Sub pdoc1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles pdoc1.PrintPage
'指到待打印的字
Static intCurrentChar As Int32
'设定打印字型
Dim font1 As New Font(TextBox1.Font.Name, TextBox1.Font.Size)
'Dim font1 As New Font("新细明体", 12)
Dim intPrintAreaHeight, intPrintAreaWidth, marginLeft, marginTop As Int32
With pdoc1.DefaultPageSettings
'设定打印区域
intPrintAreaHeight = .PaperSize.Height - .Margins.Top - .Margins.Bottom
intPrintAreaWidth = .PaperSize.Width - .Margins.Left - .Margins.Right
'设定左上角坐标
marginLeft = .Margins.Left ' X 坐标
marginTop = .Margins.Top ' Y 坐标
End With
'若为横印 (Landscape), 则长宽对调
If pdoc1.DefaultPageSettings.Landscape Then
Dim intTemp As Int32
intTemp = intPrintAreaHeight
intPrintAreaHeight = intPrintAreaWidth
intPrintAreaWidth = intTemp
End If
'根据打印区域的高度与打印字型的高度, 计算每页可印行数, 每页可印行数 = 打印区域的高度 / 打印字型的高度
Dim intLineCount As Int32 = CInt(intPrintAreaHeight / font1.Height)
'定义打印区域的长方型
Dim rectPrintingArea As New RectangleF(marginLeft, marginTop, intPrintAreaWidth, intPrintAreaHeight)
'StringFormat class 定义文字排版(layout)的信息, 譬如对齐, 行距等
Dim fmt As New StringFormat(StringFormatFlags.LineLimit)
'呼叫 MeasureString 以决定长方型打印区域的字数
Dim intLinesFilled, intCharsFitted As Int32
e.Graphics.MeasureString(Mid(TextBox1.Text, intCurrentChar + 1), font1, _
New SizeF(intPrintAreaWidth, intPrintAreaHeight), fmt, _
intCharsFitted, intLinesFilled)
'打印文字
e.Graphics.DrawString(Mid(TextBox1.Text, intCurrentChar + 1), font1, Brushes.Black, rectPrintingArea, fmt)
'指到下一个字
intCurrentChar += intCharsFitted
'是否触发下一页的 PrintPage event
If intCurrentChar < TextBox1.Text.Length Then
e.HasMorePages = True
Else
e.HasMorePages = False
'下一页重新计数
intCurrentChar = 0
End If
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -