.net 打开到另一台计算机时字体会更改

.net 打开到另一台计算机时字体会更改,.net,vb.net,winforms,fonts,.net,Vb.net,Winforms,Fonts,为什么我的程序在另一台设备/计算机中打开时字体会改变?下面是打开到另一个设备时的效果以及它最初应该是什么样子的示例。左侧是在另一个设备中打开时的样子,右侧是应该的样子。非常感谢您的帮助。如果你想知道的话,颜色每一次都会改变,并且由定时器控制 如果指定的字体在目标系统上不存在,它将使用默认字体系列呈现字符串 另外,您也没有显式地将Font分配给表单,它使用DefaultFont返回systemfont.DefaultFont,这取决于系统设置,在不同的系统中可能会有所不同。如果您需要在所有系统中使

为什么我的程序在另一台设备/计算机中打开时字体会改变?下面是打开到另一个设备时的效果以及它最初应该是什么样子的示例。左侧是在另一个设备中打开时的样子,右侧是应该的样子。非常感谢您的帮助。如果你想知道的话,颜色每一次都会改变,并且由定时器控制


如果指定的字体在目标系统上不存在,它将使用默认字体系列呈现字符串

另外,您也没有显式地将
Font
分配给表单,它使用
DefaultFont
返回
systemfont.DefaultFont
,这取决于系统设置,在不同的系统中可能会有所不同。如果您需要在所有系统中使用相似的字体,请明确为表单的
font
属性指定一种字体

您可以将其添加到应用程序中。此外,如果应用程序附带安装程序,则可以在目标计算机上部署字体。例如,将字体添加到项目中,并将其
复制到输出目录
设置为
始终复制
,然后可以通过以下方式使用字体:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim fontCollection = New PrivateFontCollection()
    fontCollection.AddFontFile(Path.Combine(Application.StartupPath, "MyFont.ttf"))
    Dim font = New Font(fontCollection.Families(0), 12)
    Me.Font = font
End Sub

所选字体是否属于TrueType字体?@duDE我相信我在这个程序中使用的字体是“Monotype Corsiva”。嗯,这是一种不太常见的字体,您已经在开发人员系统上安装了它。现在,您要将程序转到另一个系统-此处缺少字体。所以你要么选择一种通用的真字型字体(更好的选择),要么在目标系统上安装这个“Monotype Corsiva”。@duDE我真的很喜欢这个特殊程序中的这种字体。因此,我的选择是将字体安装到目标系统。我该怎么做?看看@Reza Aghael已经发布的链接:。所以你可以将字体嵌入到你的应用程序中。你附加的链接是用C#我猜。。。我真的不知道C#100%能把它翻译成VB。帮助我添加了一个VB.NET示例。我可以这样做,但字体文件在我的资源中吗?如果字体文件在您的资源中,最简单的选择是在运行时将该资源文件保存在应用程序路径中,并以与我使用的相同方式使用它。要了解如何将资源保存到应用程序路径中,请参阅示例。谢谢!我想我现在知道怎么做了。