При выходе из моего приложения .NET CF 3.5 на Motorola MC3100 (только версия CE 6.0) я получаю сообщение об ошибке "Приложение xxx обнаружило серьезную ошибку и должно быть закрыто". Затем мне нужно выполнить теплую загрузку устройства, чтобы приложение снова заработало.
Этот код работает нормально, пока приложение не будет закрыто, и только в том случае, если шрифт установлен для элемента управления в приложении. Все также отлично работает на .NET CF 2.0 и на всех других устройствах Motorola, Intermec, Psion, HHC, которые я пробовал с .NET CF 3.5.
Вот мой текущий тестовый код:
[MTAThread]
static void Main()
{
Control oCtrl = new Control();
oCtrl.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
// Setting the controls font to null works
// oCtrl.Font = null; Works
// Setting the Control to null does not work, still get error
// oCtrl = null; Doesn't work
// Setting a font, not on a control, also works fine.
// System.Drawing.Font font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
}
Я видел несколько ссылок, которые кажутся связанными:
Но пока единственная рекомендация, которую я нашел, — исключить шрифты из приложения. В данном случае слишком много мест, где устанавливаются шрифты, включая связанные сборки, что это было бы невозможно.
Кто-нибудь еще видел что-нибудь подобное. Похоже, что-то связано с элементами управления, которые неправильно распоряжаются шрифтами в этих версиях.