2017-06-18 43 views
0

我有一個列表框,我試圖填充,顯示字體名稱。源代碼是一個包含1,000多種字體文件的文件夾(.ttf's,.fon's)我可以使用文件夾中的文件名來填充列表框,但是我需要列出字體名稱(Calibri,Ari​​al,等)列出來自其他目錄的字體

與字體文件的文件夾是不是安裝在客戶端上的字體,它是根攝氏度下一個單獨的文件夾:\

誰能請幫助,我實在不明白這一個?

+0

私人小組LoadList1() 昏暗目錄= 「C:\賠率&完\ FontSync \ MasterFontList」 點心文件()作爲System.IO.FileInfo 昏暗dirinfo作爲新System.IO.DirectoryInfo(目錄) 'files = dirinfo.GetFiles(「*。ttf」) files = dirinfo.GetFiles(「*。ttf」)。Union(dirinfo.GetFiles(「*。fon」))。ToArray() For Each file在文件中 ListBox1.Items.Add(file.Name) Next End Sub –

+0

以上代碼是我可以成功填充文件名爲 –

+0

請閱讀[問]並參加[旅遊],需要幫助的代碼需要在格式正確的帖子中 – Plutonix

回答

0

編輯答案讓所有的TTF,FON的所有字體系列和OTF目錄中的文件,並將它們添加到列表框

加入這行到你的代碼的頂部..

Imports System.Drawing.Text 

聲明在窗體類以下 - 您可以使用這些後來就指回你實際的字體對象要使用的字體

下面的代碼需要這些參數: -

lstbox是您想要添加系列名稱的列表框。 目錄路徑是您要搜索 srcOption是兩個選項中的一個目錄 -

Searchoption.TopDirectoryOnly - 僅搜索指定的目錄

SearchOption.AllDirectories - 以SEACH指定的目錄和所有子目錄。

Private Sub PopulateListboxWithFontFamilies(lstbox As ListBox, directoryPath As String, srchoption As SearchOption) 

    Dim ListOfFontFamilyNames As New ListBox.ObjectCollection(lstbox) 
    Dim privateFonts As New System.Drawing.Text.PrivateFontCollection() 
    Dim directory As New DirectoryInfo(directoryPath) 
    For Each file As FileInfo In directory.GetFileSystemInfos("*.ttf", srchoption) 
     privateFonts.AddFontFile(file.FullName) 
    Next 
    For Each file As FileInfo In directory.GetFileSystemInfos("*.fon", srchoption) 
     privateFonts.AddFontFile(file.FullName) 
    Next 
    For Each file As FileInfo In directory.GetFileSystemInfos("*.otf", srchoption) 
     privateFonts.AddFontFile(file.FullName) 
    Next 
    For i As Integer = 0 To privateFonts.Families.Count - 1 
     ListOfFontFamilyNames.Add(privateFonts.Families(i).Name) 
    Next 
End Sub 
+0

感謝您的快速響應........以上將給出的字體安裝在客戶端上。我需要上面的內容,但是對於未安裝的字體文件,位於硬盤驅動器上的文件夾中。 –

+0

好吧,我幾乎在那裏................我如何讓下面的.getFiles語句獲得帶有.otf擴展名的文件? –

+0

Dim files As String()= Directory.GetFiles(「c:\ Odds&Ends \ FontSync \ MasterFontList」,「* .ttf」) –