プライベートフォントでRichTextBoxを使用すると、次の問題が発生します。テキストボックス内にプライベートフォントでテキストを書き込むことができますが、テキストボックスを選択すると(プログラムでさらに必要になります)、MSSansSerifが選択として返されます。フォント。
PrivateFontCollection pfc = new PrivateFontCollection(); // font collection
pfc.AddFontFile("..\\..\\Fonts\\infotra1.ttf"); // load font
rtb.Font = new Font(pfc.Families[0], 10.0f, FontStyle.Regular);
rtb.AppendText("lorem ipsum bla bla bla\n");
これで、テキストがテキストボックスに正しく追加されます。
private void rtb_SelectionChanged(object sender、EventArgs e){var f = rtb.SelectionFont; }
テキストを選択してrtb.SelectionFontを調べると、MSSansSerifが返されます。
フォントが見つからない場合、システムがMSSansSerifを返すことを知っています。プライベートフォントも使用していることを何らかの方法でRichTextBoxに伝える必要がありますか?