当我们设置控件的字体时,有时候会发现很多字体在VS编辑器中是找不到的。举个例子:Times New Roman 这个新罗马字体是我们常用的,但是在编辑器中确实找不到,不信读者可以试试。
首先要先找到Times New Roman 格式的文件,这个可以在网上下载,也可以直接在电脑硬盘中搜,一般来说电脑中都会有的,文字格式文件是以.ttf格式存储的。
打开计算机,在右上角搜索框中输入“?.ttf”搜索可能需要些时间,具体搜索示意如下图:
第二步:将Times New Roman 格式文件复制到当前项目的文件夹下,我是在文件的Sln文件所在层新建了一个res文件夹,然后把格式文件复制到该文件夹下的。(读者可以以自己的方式存储,只要在代码中修改下就可以了)
第三步:在代码编辑器中,写一个带返回值的过程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
时间: 2024-11-09 03:29:31