Немного предыстории:
Я искал как stackoverflow, так и Google, чтобы выяснить происхождение этого конкретного исключения.
У нас есть приложение Windows Forms (C #, .NET 2.0), которое иногда вызывает исключение System.AccessViolationException (трассировка стека ниже). Исключение произошло как в Windows XP (SP3), так и в Windows Vista (SP2). На основании пользовательского ввода мы установили, что исключение возникает при изменении выбранного индекса ComboBox.
ComboBox - это стандартный компонент Windows Forms, который содержится в настраиваемом элементе управления, наследующем System.Windows.Forms.UserControl
.
Мой главный вопрос:
Где это исключение?
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)