能
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)千陽,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
我們寫exe程序時,默認(rèn)字體是宋體,比較難看,指定了其他字體,但是其他用戶上沒有你指定的這個字體的話,也會變成默認(rèn)的宋體。解決的辦法有這么幾個:
1,叫用戶安裝相應(yīng)字體,這個基本不可能實現(xiàn),因為沒有幾個人會進(jìn)行這樣的操作;
2,給用戶安裝相應(yīng)字體,這個辦法可行,在制作安裝包時將字體打包進(jìn)去,然后用戶安裝程序的時候連字體也一并安裝上去,一勞永逸;
3,把字體導(dǎo)入到程序資源中,讓程序直接調(diào)用字體資源,缺點是導(dǎo)致程序體積巨大;
4,將字體文件放到程序目錄里,在程序里單獨調(diào)用。
個人覺得第4種辦法比較方便,所以決定采用這種方法,把代碼寫出來給需要的同學(xué)。
引用:
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)
'設(shè)置窗體控件字體,哪些控件要更改都寫到下面
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程序?qū)⒁阅J(rèn)字體顯示", "警告",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
end try
然后在public sub Form1()
InitializeComponent()
Setfont() '啟動字體設(shè)置函數(shù)
end sub
在給所有頂層窗口發(fā)送消息之前需要在注冊表中記錄字體:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
否則是無法顯示在系統(tǒng)的字體列表中的。
可以利用font 設(shè)置。設(shè)置方法如下:
TextBox1.Font = New System.Drawing.Font("宋體", 10)
也可以通過字體對話框來實現(xiàn) 如:
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這個應(yīng)該是完整的命名空間.類名
你在a的構(gòu)造函數(shù)里面用string s=typeof(a).ToString()就知道了。
給點提示吧,已粗體為例(完全是我自己的方法,不知別人是怎么做的):
'先獲取選擇的字體信息(字體、大小、樣式。。。)
Dim currentFont As System.Drawing.Font = RichTextBox1.SelectionFont
'在重新定義某種樣式的時候,不丟失其他信息
RichTextBox1.SelectionFont = New Font(currentFont.FontFamily, currentFont.Size, FontStyle.Bold)