Наша автоматическая система отчетов о сбоях начала отправлять все больше и больше отчетов о сбоях такого типа:
System::Windows::Forms::Application::ThreadException event occured
SENDER: System.Threading.Thread
EXCEPTION: System.ArgumentException
MESSAGE: Font 'Arial' does not support style 'Regular'.
SOURCE: System.Drawing
CALL STACK
at System.Drawing.Font.CreateNativeFont()
at System.Drawing.Font.Initialize(FontFamily family, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
at System.Drawing.Font..ctor(FontFamily family, Single emSize)
at Kernel.EH_FontServer.CreateFont(String family, Single size, FontStyle style) in **
at Kernel.EH_FontServer..cctor() in **
У меня сложилось впечатление, что Arial должен быть доступен везде в Windows, и, когда шрифт не может быть найден, окна вернутся к другому шрифту + стилю, который существует.
Как правильно справиться с этим? Моему приложению нужно определить ряд стандартных шрифтов для разных элементов отображения. До сих пор я жестко запрограммировал Arial, Courier New, Comic Sans Serif и Times New Roman, и я получаю отчет о сбое для всех из них.
Как только пользователь установит отсутствующий шрифт, все снова будет в порядке.