C# winform程序运行过程中提示"尝试读取或写入受保护的内存.这通常指示其他内存已损坏的" 错误,如下图所示
查看详细信息如下
未处理System.AccessViolationException
HResult=-2147467261
Message=尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
Source=System.Windows.Forms
StackTrace:
在 System.Windows.Forms.UnsafeNativeMethods.ImmSetOpenStatus(HandleRef hIMC, Boolean open)
在 System.Windows.Forms.ImeContext.SetOpenStatus(Boolean open, IntPtr handle)
在 System.Windows.Forms.ImeContext.Enable(IntPtr handle)
在 System.Windows.Forms.ImeContext.SetImeStatus(ImeMode imeMode, IntPtr handle)
在 System.Windows.Forms.Control.WmImeKillFocus()
在 System.Windows.Forms.Control.WmKillFocus(Message& m)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
在 System.Windows.Forms.Button.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
InnerException:
HResult=-2147467261
Message=尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
Source=System.Windows.Forms
StackTrace:
在 System.Windows.Forms.UnsafeNativeMethods.ImmSetOpenStatus(HandleRef hIMC, Boolean open)
在 System.Windows.Forms.ImeContext.SetOpenStatus(Boolean open, IntPtr handle)
在 System.Windows.Forms.ImeContext.Enable(IntPtr handle)
在 System.Windows.Forms.ImeContext.SetImeStatus(ImeMode imeMode, IntPtr handle)
在 System.Windows.Forms.Control.WmImeKillFocus()
在 System.Windows.Forms.Control.WmKillFocus(Message& m)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
在 System.Windows.Forms.Button.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
InnerException:
解决办法:
通过查看详细信息怀疑是输入法的问题。把输入法由极品五笔换成微软件拼音输入法后问题解决.