欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-01-22 09:00:28
当我们设置控件的字体时,有时候会发现很多字体在vs编辑器中是找不到的。举个例子:times new roman 这个新罗马字体是我们常用的,但是在编辑器中确实找不到,不信读者可以试...
当我们设置控件的字体时,有时候会发现很多字体在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