Você já viu uma exceção como essa?
System.ArgumentException: Only TrueType fonts are supported. This is not a TrueType font.
at System.Drawing.Font.FromLogFont(Object lf, IntPtr hdc)
at System.Windows.Forms.FontDialog.UpdateFont(LOGFONT lf)
at System.Windows.Forms.FontDialog.RunDialog(IntPtr hWndOwner)
at System.Windows.Forms.CommonDialog.ShowDialog(IWin32Window owner)
Esta exceção é lançada ao usar o componente System.Windows.Forms.FontDialog e você seleciona uma fonte inválida. E você não pode fazer nada sobre isso, pois essa exceção é enterrada em um método privado do FontDialog e não é tratado.
Como o bug está lá há anos sem ser corrigido e, dado o fato de que o Windows Forms não está exatamente no topo da lista de prioridades da Microsoft, suspeito que nunca será corrigido. Esta é uma roda que eu prefiro não reinventar, mas ... aqui está de qualquer maneira.
Na verdade, não consegui encontrar uma fonte que causa esse tipo de falha, embora eu tenha alguns relatórios de erros automatizados de usuários que a experimentam. Se você conhece essa fonte que está disponível para download, informe -me para que eu possa testá -lo sozinho. Suponho que minha versão corrige o problema, mas neste momento não tenho certeza.
O componente Cyotek.Windows.Forms.FontDialog é uma queda na substituição do System.Windows.Forms.FontDialog original.windows.forms.fontdialog, mas sem a falha que ocorre ao selecionar uma fonte que não seja verdadeira.
Esta versão usa a caixa de diálogo Native Win32 via ChooseFont - o procedimento do gancho para lidar com o evento Apply e ocultar a cor ComboBox foi retirado diretamente do componente gerenciado original.
Há também uma solução totalmente gerenciada enterrada em um dos ramos deste repositório. É incompleto, principalmente porque eu não consegui determinar quais fontes estão ocultas por configurações e como combinar famílias com estilos não padrão, como a luz. Ainda é interessante por si só, mostrando como usar EnumFontFamiliesEx etc, mas por enquanto está em espera como um trabalho em andamento.
Um pacote NUGET está disponível.
PM> Install-package cyotek.windows.forms.fontdialog
O componente FontDialog é licenciado sob a licença do MIT. Consulte LICENSE.txt para o texto completo.
Para obter mais informações sobre esse controle, consulte os artigos marcados com Fontdialog em cyotek.com.