Немного предыстории:
Я искал и в stackoverflow, и в Google, чтобы выяснить происхождение этого конкретного исключения.
У нас есть приложение Windows Forms (C #, .NET 2.0), которое иногда создает исключение System.AccessViolationException (трассировка стека ниже).Исключение произошло как в Windows XP (SP3), так и в Windows Vista (SP2).Исходя из пользовательского ввода, мы обнаружили, что исключение возникает при изменении выбранного индекса ComboBox.
ComboBox является стандартным компонентом Windows Forms и содержится в пользовательском элементе управления, который наследует System.Windows.Forms.UserControl
.
Мой основной запрос:
Откуда происходит это исключение?
- Это из-за какой-то внутренней ошибки в .NET Framework?
- Может ли это быть код, отправленный для события
SelectedIndexChanged
, которое его вызывает?
Связанные темы по stackoverflow:
Трассировка стека:
Message: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Type: System.AccessViolationException
at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
at System.Windows.Forms.Control.DefWndProc(Message& m)
at System.Windows.Forms.Control.WmCommand(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ComboBox.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)