VB.NET 章鱼哥 怎么在项目中使用外部文字格式

VB.NET 章鱼哥 如何在项目中使用外部文字格式
    当我们设置控件的字体时,有时候会发现很多字体在VS编辑器中是找不到的。举个例子:Times New Roman 这个新罗马字体是我们常用的,但是在编辑器中确实找不到,不信读者可以试试。
VB.NET 章鱼哥 怎么在项目中使用外部文字格式
    首先要先找到Times New Roman 格式的文件,这个可以在网上下载,也可以直接在电脑硬盘中搜,一般来说电脑中都会有的,文字格式文件是以.ttf格式存储的。
打开计算机,在右上角搜索框中输入“?.ttf”搜索可能需要些时间,具体搜索示意如下图:VB.NET 章鱼哥 怎么在项目中使用外部文字格式

    第二步:将Times New Roman 格式文件复制到当前项目的文件夹下,我是在文件的Sln文件所在层新建了一个res文件夹,然后把格式文件复制到该文件夹下的。(读者可以以自己的方式存储,只要在代码中修改下就可以了)VB.NET 章鱼哥 怎么在项目中使用外部文字格式

    第三步:在代码编辑器中,写一个带返回值的过程ImportFont(),代码如下:
Imports System.Drawing.Text
Module Module2
    '导入外部字体
    Public Function ImportFont() As Font
        '  获取字体文件的路径
        Dim Path = Replace(Application.StartupPath, "\bin\Debug", "\res\segoeui.ttf")
        Try
            Dim NewFont1 As New PrivateFontCollection '建立一个 个人格式集合对象
            NewFont1.AddFontFile(Path) '通过路径访问格式文件(这里的路径一定要对)
            'New Font()里面可选多个参数,第一个参数就是格式名,第二个参数是字体大小,第三个参数是字体的粗细,正斜下划线等选项,
            '第四个参数是字体的度量单位,后面还有,不过是可选参数我直接默认了。读者可以自行试试
            Dim NewFont As Font = New Font(NewFont1.Families(0).Name, 12, FontStyle.Regular, GraphicsUnit.Pixel)
            Return NewFont
        Catch ex As Exception
            Return Nothing
        End Try

    End Function

End Module


这样只要调用该函数就可以获得一个类型是Font的变量,该变量的值就是Times NewRoman格式了
  '设置整个窗体中控件的字体
    Private Sub SetControlFont()
        Dim Font1 As Font = ImportFont()
        '使用镶嵌循环语句,保证每个控件的字体都设置
        If Font1 IsNot Nothing Then
            For Each Cotr As Control In Controls
                Cotr.Font = Font1
                If Cotr.Controls IsNot Nothing Then
                    For Each Cotr1 As Control In Cotr.Controls
                        Cotr1.Font = Font1
                    Next
                End If
            Next         
        End If    
    End Sub
好了,设置好了,只要在窗体的Load事件中调用SetControlFont()函数就可以设置该项目窗体上的每个控件的字体为Times New Roman

 Private Sub frm_Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        SetControlFont()
    End Sub