WinForms.FontDialog中缺少字体

当我显示WinForms.FontDialog(C#,.NET 2.0)的实例时,我缺少一些我期望在那里的字体(例如Courier,Fixedsys,MS Sans Serif)。 此外,客户抱怨他安装的Adobe字体也没有出现在列表中。

如何在此对话框中显示这些字体?

FontDialog旨在仅显示TrueType字体以保持与GDI +兼容。 让它显示设备字体需要一点reflection黑客攻击:

using System.Reflection; 

 FontDialog fontDialog1 = new FontDialog(); MethodInfo mi = typeof(FontDialog).GetMethod("SetOption", BindingFlags.NonPublic | BindingFlags.Instance); mi.Invoke(fontDialog1, new object[] { 0x40000, false }); fontDialog1.ShowDialog(); 

我不知道这是否也支持Adobe的OpenType字体,我没有。 让我们知道。