我可以提高我的功能,不按每个元素搜索?字体已安装?功能
#Region " Font Is Installed? Function "
' [ Font Is Installed? Function ]
'
' Examples :
' MsgBox(Font_Is_Installed("Lucida Console"))
Private Function Font_Is_Installed(ByVal FontName As String) As Boolean
Dim AllFonts As New Drawing.Text.InstalledFontCollection
For Each Font As FontFamily In AllFonts.Families
If Font.Name.ToLower = FontName.ToLower Then Return True
Next
Return False
End Function
#End Region
UPDATE:
好吧,现在我看到了 “.tolist” 功能,现在我的代码是这样的:
Private Function Font_Is_Installed(ByVal FontName As String) As Boolean
Dim AllFonts As New Drawing.Text.InstalledFontCollection
Dim FontFamily As New FontFamily(FontName)
If AllFonts.Families.ToList().Contains(FontFamily) Then Return True Else Return False
End Function
我有同样的问题:是最好的通过第二种方式改进,还是我可以改进得更好?
谢谢,但我有两个小问题:第一:最终使用后返回值是否有效?我的意思是,如果“TestFont”真的在“return”之后结束/关闭,第二:你的方式不要比较每个元素? (对不起,如果这是一个愚蠢的问题) – ElektroStudios 2013-04-09 09:30:16
你只想检查字体是否安装,永远不会有两个同名的字体,使用它的最终结果仍然会清理内存中的对象 – 2013-04-09 09:35:13