当前位置: 代码迷 >> VB Dotnet >> []怎么获得VB.NET里所有的字体
  详细解决方案

[]怎么获得VB.NET里所有的字体

热度:144   发布时间:2016-04-25 02:06:47.0
[求助]如何获得VB.NET里所有的字体?
我是想做一个程序,但想得到所有的字体,求高手指导!
------解决思路----------------------
Public Class Form1
    '创建一个公共Graphics用来绘画测试字体,避免反复创建
    Dim myg As Graphics
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '公共Graphics指向本窗体新建的Graphics
        myg = Me.CreateGraphics

        '创建一个字体数组
        Dim fontFamilies() As FontFamily
        '枚举系统字体
        Dim installedFontCollection As New Drawing.Text.InstalledFontCollection()
        '系统字体装进字体数组
        fontFamilies = installedFontCollection.Families
        '字体总数
        Dim count As Integer = fontFamilies.Length

        '在ComboBox1列出所有字体项
        Dim j As Integer
        ComboBox1.BeginUpdate()
        While j < count
            ComboBox1.Items.Add(fontFamilies(j).Name)
            j += 1
        End While
        ComboBox1.EndUpdate()

    End Sub

    '当ComboBox1改变选项的时候
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        'MessageBox.Show(ComboBox1.GetItemText(ComboBox1.SelectedItem))
        '创建选中字体
        Dim fontFamily As New FontFamily(ComboBox1.GetItemText(ComboBox1.SelectedItem))
        Dim font As New Font( _
           fontFamily, _
           24, _
           FontStyle.Regular, _
           GraphicsUnit.Point)
        '规定一个绘画边界
        Dim rectF As New RectangleF(20, 20, Me.Width - 20, Me.Height - 20)
        '创建一黑色笔刷
        Dim solidBrush As New SolidBrush(Color.Black)
        '清空图像
        myg.Clear(Me.BackColor)
        '绘制出字体
        myg.DrawString("测试字体 My Font", font, solidBrush, rectF)
    End Sub
End Class


新建一个窗体项目,在Form1设计器中拉一个ComboBox
在Form1代码用上面代码替换
  相关解决方案