さて、プログラムにプライベートフォントコレクションを使用して、プログラムに少しの独自性を追加しようとしています。私が使用しているフォントは、デフォルトではコンピューターにインストールされていません。フォントの名前は youmurdererbb_reg です。リソース フォルダーにフォント ファイルがあり、ファイルは .ttf 形式です。これが私がこれまでに持っているものです:
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Drawing.Text
Imports System.Text
Dim pc As New PrivateFontCollection
Private Sub Main_Menu_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Try
pc.AddFontFile(YouMurderer)
Catch ex As Exception
Trace.WriteLine(ex.ToString)
End Try
End Sub
Private Sub Main_Menu_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
Dim Fnt As Font = New Font(pc.Families(0), 80, FontStyle.Regular)
e.Graphics.DrawString("This is the text that is being drawn", Fnt, Brushes.Black, 10, 10)
End Sub
ここで、Private Font Collection を宣言しました。これを機能させるために、次のようなさまざまなことを試しました。
Dim YouMurderer As String = Encoding.ASCII.GetString(My.Resources.youmurdererbb_reg)
Dim YouMurderer As String = Convert.ToString(My.Resources.youmurdererbb_reg)
Dim YouMurderer As String = Convert.ToBase64String(My.Resources.youmurdererbb_reg)
Dim YouMurderer As String = Encoding.UTF8.GetString(My.Resources.youmurdererbb_reg)
しかし、どちらを選択しても、フォーム全体に大きな赤い「X」が表示されます(ピクチャボックスの「ErrorImage」のように)(追加情報としてフォームの背景に画像を設定しています)。
別の問題は、変換しようとしない場合です。
Dim YouMurderer As String = My.Resources.youmurdererbb_reg
次に、次のエラーが表示されます。
Value of type '1-dimensional array of Byte' cannot be converted to 'String'.
.NET (Framework 4) でこれについて助けが必要です! プログラム全体は、C#、C++、JAVA ではなく、VB.net で書かれています。