none
VB新手:VB2008 如何获得系统安装的全部字体列表? RRS feed

  • 问题

  • 使用的是VB2008速成版。现有一个对话框Dialog1和ComBox1,想在ComBox1里显示所有系统已经安装的字体。怎么做?网上介绍的方法行不通啊~~请高手将代码写出并解释,谢谢!

    2008年10月18日 12:22

全部回复

  • 你好!
       我过去写过一个类似的功能,核心的功能是一样的,这个是在Form中直接显示的,你在改在Dialog1中就行了:
    Code Snippet

            protected override void OnPaint(PaintEventArgs e)        }


            {
                base.OnPaint (e);
                int verticalCoordinate=margin;
                Point topLeftCorner;

                InstalledFontCollection insFont=new InstalledFontCollection();
                FontFamily[] families=insFont.Families;

                e.Graphics.TranslateTransform(AutoScrollPosition.X,AutoScrollPosition.Y);

                foreach(FontFamily family in families)
                {
                    if(family.IsStyleAvailable(FontStyle.Regular))
                    {
                        Font f=new Font(family.Name,12);
                        topLeftCorner=new Point(margin,verticalCoordinate);
                        verticalCoordinate+=f.Height;

                        e.Graphics.DrawString(family.Name,f,Brushes.Black,topLeftCorner);
                        f.Dispose();
                    }
                }


    2008年10月18日 13:49
    版主
  • Option Explicit On
    Public Class Form1

        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            ' Visual Basic 2008
            Dim ff As FontFamily
            For Each ff In System.Drawing.FontFamily.Families
                ListBox1.Items.Add(ff.Name)
            Next
        End Sub
    End Class

    2008年12月29日 2:19