アプリケーション (VB.Net、Winforms、フレームワークの v2 を使用) を使用しているときに、上記のエラーが発生することがあります。私はそれを再現することができません。コールスタックは次のとおりです。
: System.AccessViolationException: 保護されたメモリを読み書きしようとしました。これは多くの場合、他のメモリが破損していることを示しています。System.Windows.Forms.UnsafeNativeMethods.CallWindowProc (IntPtr wndProc、IntPtr hWnd、Int32 msg、IntPtr wParam、IntPtr lParam) で System.Windows.Forms.NativeWindow.DefWndProc (メッセージ & m) で System.Windows.Forms.Control.DefWndProc (Message& m) System.Windows.Forms.Control.WndProc(Message& m) System.Windows.Forms.ComboBox.WndProc(Message& m) で ControlEx.AutoCompleteCombo.WndProc(Message& m) System.Windows.Forms.Control でSystem.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) の .ControlNativeWindow.OnMessage(Message& m) System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
ControlEx.AutoCompleteCombo.WndProc のコードは次のとおりです。
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Try
If Not m_fReadOnly Then
MyBase.WndProc(m)
Else
Select Case m.Msg
Case WM_LBUTTONDOWN, WM_LBUTTONDBLCLK
' do nothing
Case Else
MyBase.WndProc(m)
End Select
End If
Catch ex As OutOfMemoryException
Throw New OutOfMemoryException("Exception during WndProc for combo " & Me.Name, ex)
End Try
End Sub
エラー処理が追加されたため、OutOfMemoryException が発生したときに、どの組み合わせが問題の原因であるかを判断できます。
これの原因についての手がかりをいただければ幸いです。:-)