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

📄 frmnotepad.vb

📁 vb 应用实例 简单应用 ddddddddddddddddddddddddddddddddd
💻 VB
📖 第 1 页 / 共 2 页
字号:
    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 + -