重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
能
创新互联主要从事网站设计、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务千阳,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
我们写exe程序时,默认字体是宋体,比较难看,指定了其他字体,但是其他用户上没有你指定的这个字体的话,也会变成默认的宋体。解决的办法有这么几个:
1,叫用户安装相应字体,这个基本不可能实现,因为没有几个人会进行这样的操作;
2,给用户安装相应字体,这个办法可行,在制作安装包时将字体打包进去,然后用户安装程序的时候连字体也一并安装上去,一劳永逸;
3,把字体导入到程序资源中,让程序直接调用字体资源,缺点是导致程序体积巨大;
4,将字体文件放到程序目录里,在程序里单独调用。
个人觉得第4种办法比较方便,所以决定采用这种方法,把代码写出来给需要的同学。
引用:
Imports System.Drawing.Text
public sub Setfont()
dim AppPath as string = Application.StartupPath
try
dim font1 as PrivateFontCollection = new PrivateFontCollection()
font1.AddFontFile(AppPath + "\font\msyh.ttf") '字体的路径及名字
dim myFont as Font = new Font(font.Families[0].Name, 9,FontStyle.Regular,GraphicsUnit.Point, 134)
'设置窗体控件字体,哪些控件要更改都写到下面
label1.Font = myFont
label2.Font = myFont
label3.Font = myFont
button1.Font = myFont
button2.Font = myFont
button3.Font = myFont
button4.Font = myFont
button5.Font = myFont
catch e as exception
MessageBox.Show("字体不存在或加载失败\n程序将以默认字体显示", "警告",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
end try
然后在public sub Form1()
InitializeComponent()
Setfont() '启动字体设置函数
end sub
在给所有顶层窗口发送消息之前需要在注册表中记录字体:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
否则是无法显示在系统的字体列表中的。
可以利用font 设置。设置方法如下:
TextBox1.Font = New System.Drawing.Font("宋体", 10)
也可以通过字体对话框来实现 如:
Private Sub myButton_Click(sender As Object, e As EventArgs)
Dim myFontDialog As FontDialog
myFontDialog = New FontDialog()
If myFontDialog.ShowDialog() = DialogResult.OK Then
' Set the control's font.
myDateTimePicker.Font = myFontDialog.Font
End If
End Sub
My Project.a这个应该是完整的命名空间.类名
你在a的构造函数里面用string s=typeof(a).ToString()就知道了。
给点提示吧,已粗体为例(完全是我自己的方法,不知别人是怎么做的):
'先获取选择的字体信息(字体、大小、样式。。。)
Dim currentFont As System.Drawing.Font = RichTextBox1.SelectionFont
'在重新定义某种样式的时候,不丢失其他信息
RichTextBox1.SelectionFont = New Font(currentFont.FontFamily, currentFont.Size, FontStyle.Bold)