На платформе WindowsCE (пользовательская сборка) наш C# gui использует обычные формы для отображения «всплывающего меню». Мы установили FormBorderstyle на номер Нет, так как мы не хотим, чтобы элементы управления формы были видимыми.Form.FormBorderStyle Native Exception Нарушение прав доступа
Некоторые клиенты сообщили «Серые коробки» через некоторое время. После некоторого тестирования здесь мы могли бы быстро воспроизвести проблему. Когда мы открываем 2 разных меню (формы) постоянно, платформа показывает нам собственное исключение.
Ошибка
Нативное исключение произошло в Tiger.CEHost.exe. Выберите «Выход» и , затем перезапустите эту программу или выберите . Подробности для получения дополнительной информации.
Детали:
Ошибка
ExceptionCode: 0xC0000005
ExceptionAdress: 0x00000001
Reading: 0x00000001на WL.SetSTyle (IntPtr hwnThis, UInt32 dwMask, UInt32 dwStyle)
в Form._SetBorderStyle (AGL_WINDOWSTYLE wstyVal, AGL_WINDOWSTYLE wstyMask)
на Form.set_FormBorderStyle (значение FormBorderStyle)
в pDropDown.PopupForm.Show()
в pDropDown.Show()
в pButton.ShowHideDropDown()
на pButton.OnClick (EventArgs е)
в контроле. WnProc (WM WM, Int32 WPARAM, Int32 LPARAM)
в Control._InternalWnProc (WM WM, Int32, Int32 wParam'а, LPARAM)
на EVL.EnterMainLoop (IntPtr hwnMain)
в Application.Run (Форма Fm)
на Program.Main (String [] args)
Кажется, что это всегда сбой в собственности FormBorderStyle. Мы уже пытались удалить все pInvokes, поскольку, возможно, некоторая память была перезаписана, но это не помогло.
Мы также регистрируем каждый вызов метода Show, и каждый вызов выполняется в потоке gui, а Form содержит действительный дескриптор.
Была ли когда-нибудь статья в КБ или что-то на этом написано? – JoelHess
@ JoelHess, нет, не было времени в тот момент и честно забыл об этом. – Stormenet